用于Hibernate表和列的java自动保留字转义
我试图对几个不同的数据库使用一个Hibernate映射:H2、Oracle和MySql
每个数据库都有不同的保留字列表
我想冬眠,以自动摆脱保留的话
我知道我可以:
- 使用反勾号强制逃跑(为了安全起见逃离一切)
- 更改所有标识符,使其绝对不是任何数据库中的关键字(使其难看)
- 将模式绑定到一组特定的数据库,避开关键字的并集(如果我在混合中添加新数据库,则会中断)
有更优雅的解决方案吗
你可以在下面搜索框中键入要查询的问题!
我试图对几个不同的数据库使用一个Hibernate映射:H2、Oracle和MySql
每个数据库都有不同的保留字列表
我想冬眠,以自动摆脱保留的话
我知道我可以:
有更优雅的解决方案吗
# 1 楼答案
好吧,Hibernate不维护保留关键字列表(每个数据库),所以我认为您应该查看数据库标识符转义
如果您使用的是Hibernate 3.5+,请尝试
hibernate.globally_quoted_identifiers=true
引用所有数据库标识符(这是他们为JPA 2.0添加的内容,请参阅规范中的secion2.13数据库对象命名,了解在使用JPA时激活此项的JPA方法)在版本3.5之前,Hibernate不提供任何全局转义的配置选项。实现一个自定义
NamingStrategy
以透明地转义所有内容将是推荐的方法另见