如何强制 Hibernate-Envers 在字段名称周围使用引号?

发布于 2024-10-26 05:13:34 字数 165 浏览 5 评论 0原文

我有一个表,其属性定义如下: @Column(name="\"SERIAL#\"")

当 Hibernate 插入数据时,一切正常。 但对于 Hibernate-Envers(HE),HE 忘记用双引号将字段名称引起来。

我如何强制它在字段周围使用双引号?

I have a table with properties defined like this :
@Column(name="\"SERIAL#\"")

When Hibernate inserts data, everything works fine.
But it comes to Hibernate-Envers(HE), HE forgets to surround the field name with doublequotes.

How can i force it to use the doublequotes aroud the fields ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

海之角 2024-11-02 05:13:34

您想使用双引号,还是想转义名称?如果您只是想转义,请使用反引号 (`),Hibernate 会将其转换为数据库用于转义的任何机制。所以,你的例子是:

@Column(name="`SERIAL#`")

只是出于好奇:为什么列名中需要一个#?我一直认为标识符中的特殊字符是个坏主意:-)

Do you want to use double quotes, or do you want to escape the name? If you just want to escape, use backticks (`) and Hibernate will convert it to whatever mechanism your database uses for escaping. So, your example would be:

@Column(name="`SERIAL#`")

Just out of curiosity: why do you need a # in a column name? I always thought that special chars are a bad idea in identifiers :-)

不弃不离 2024-11-02 05:13:34

为了解决这个问题,我设法不在字段名称中使用“#”,因此 Hibernate 和 Hibernate Envers 都不必转义字段名称。

编辑

事实上,这是 Hibernate Envers 3.6.2.Final 中的一个错误。应该稍后解决。

编辑2
该错误已在 Hibernate Envers 3.6.3 和 Hibernate Envers 4.0.0Alpha 中修复。

编辑3
该错误已在 Hibernate Core 3.6.4.Final 中修复。

For solving the problem, i manage to not use the '#' in the field name thus neither Hibernate nor Hibernate Envers have to escape the field name.

EDIT:

In fact it's a bug in Hibernate Envers 3.6.2.Final. It should be solved later.

EDIT 2:
The bug has been fixed in Hibernate Envers 3.6.3 and Hibernate Envers 4.0.0Alpha.

EDIT 3:
The bug has been fixed in Hibernate Core 3.6.4.Final.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文