Hibernate主键生成native,identity不可用,increment可以

公司开发基本上不用写Hibernate批注,因为公司有引以为自豪的实体类生成工具!
但是基本上要改动一下批注!默认情况下每个实体类的主键生成策略是assigned.

大家都知道assigned 就是由数据库外部程序指定的方式!
但是我们大多开发都是喜欢自动生成,自动生成必然首选native啦!应为这个方式可以让你的程序数据库移植性变的更强!
但是试了试不可以,出错了!我想identity总可以吧(应为我们的数据库用的是mysql)。实质上也是不可以的,但是当我改成Increment的时候!居然可以啊!
都是自增长区别咋就那么大呢?

仔细查看了一下Hibernate代码,哎,利用上班时间研究东西就是爽啊,呵呵!
发现实质上native,identity是没错的,但是因为我们公司的开发方式是才让这种错误产生!
公司的开发是用pd生成数据库sql,然后利用公司程序导出相应的实体类!
(实体类会把你建表的一整套东西都搞定的,呵呵!)
这样的话其实数据库里面你没有规定他的增长方式,so....native.identity是无效的。当然,正常开发的时候我们是根据实体类生成表!这样就是有用的了!
而increment之所以有用就是因为,他是Hibernate维护的一个计时器!也算是程序加入主键的一种方式把。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值