ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java – JPA或Hibernate生成(非主键)列值,而不是从1开始

2019-07-28 02:01:28  阅读:211  来源: 互联网

标签:java mysql jpa hibernate auto-increment


我想要一个JPA / Hibernate(最好是JPA)注释,它可以生成一个列的值,它不是主键,也不是从1开始.

从我所看到的,JPA不能用@GeneratedValue和@SequenceGenerator以及@TableGenerator来做到这一点.或者其他任何东西.

我看到solution有一张额外的桌子,我发现它不优雅.

我可以使用Hibernate注释,因为我已经有了hibernate注释.

我想使用@Generated,但我无法使它工作,人们claim可能.

@Generated(GenerationTime.INSERT)
private long invoiceNumber;//invoice number

更新:一个额外的要求,如果事务被回滚,我们就不能在编号上留下空白.
任何人?

解决方法:

@GeneratedValue仅适用于标识符,因此您无法使用它.如果使用MySQL,则由于不支持数据库序列,因此非常有限.

InnoDB doesn’t support multiple AUTO_INCREMENT columns如果您的表PK是AUTO_INCREMENTED,那么您有两个选择:

>选择一个单独的表,其行为类似于序列生成器,您已经说过的解决方案并不高兴.
>使用INSERT TRIGGER增加该列.

标签:java,mysql,jpa,hibernate,auto-increment
来源: https://codeday.me/bug/20190728/1559024.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有