加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-15 04:26:55 所属栏目:Java 来源:网络整理
导读:我想要一个JPA / Hibernate(最好是JPA)注释,它可以生成一个列的值,它不是主键,也不是从1开始. 从我所看到的,JPA不能用@GeneratedValue和@SequenceGenerator以及@TableGenerator来做到这一点.或者其他任何东西. 我看到solution有一张额外的桌子,我发现它不优
我想要一个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增加该列.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读