注册
hibernate主键生成策略

hibernate主键生成策略

tdj305 2021/03/11 2859 15 0
摘要 在应用移植到达梦数据库的时候,技术框架是hibernate框架时,主键生成策略的兼容是每家都比较关注的问题,达梦为了减少应用移植的工作量,采用配置兼容各种数据库的用法的方式解决。

hibernate的主键生成策略有auto、table、identity和sequence这4种。之前基于Oracle开发的框架,一般采用的是sequence;基于MySQL开发的一般采用的是identity或者table。这些应用移植到达梦数据库时,只需要配置下兼容性,其他代码无需修改。

当应用使用的是auto时,针对不同数据库移植过来的,配置对应的兼容方式。
兼容Oracle:
这个是sequence方法,方法如下:
hibernate.id.new_generator_mappings=true
方言包类名改为org.hibernate.dialect.DmDialect
P1.png
程序代码如下:

    <property name="hibernate.id.new_generator_mappings">true</property>
    <property name="dialect">org.hibernate.dialect.DmDialect</property>   

兼容MySQL:
这里面有2种,一是identity方法,修改如下:
hibernate.id.new_generator_mappings=false
方言包类名改为org.hibernate.dialect.DmDialect

    <property name="hibernate.id.new_generator_mappings">false</property>
    <property name="dialect">org.hibernate.dialect.DmDialect</property>

第二种是table方法,修改如下:
hibernate.id.new_generator_mappings=false
方言包类名改为org.hibernate.dialect. DmMysqlDialect

    <property name="hibernate.id.new_generator_mappings">true</property>
   <property name="dialect">org.hibernate.dialect. DmMysqlDialect</property>   

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服