微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我想要一个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增加该列.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐