如何强制 Hibernate-Envers 在字段名称周围使用引号?
我有一个表,其属性定义如下: @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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您想使用双引号,还是想转义名称?如果您只是想转义,请使用反引号 (`),Hibernate 会将其转换为数据库用于转义的任何机制。所以,你的例子是:
只是出于好奇:为什么列名中需要一个#?我一直认为标识符中的特殊字符是个坏主意:-)
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:
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 :-)
为了解决这个问题,我设法不在字段名称中使用“#”,因此 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.