ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

JPA:如何使字段自动增量

2019-06-26 23:02:12  阅读:241  来源: 互联网

标签:mysql jpa auto-increment eclipselink


我使用Eclipselink作为我的JPA提供程序,如何进行字段自动增量?

解决方法:

I just want an auto-increment field for 1 entity.

是的,我明白了,这就是你在问题中所写的内容.但它可以用几种方式解释,重复相同的事情,没有澄清没有多大帮助:)

So does Pascal’s way work or I have to do what Bytecode suggest, query select (max) counter + 1 from MyEntity, to get the next value, then set it to the design field, the persist?

如果你想增加每个实体记录的字段(例如,对于id = 1的Order的“计数器”,另一个对于id = 2的Order,我建议的那样).

如果您想要一种类似于主键的行为(即自动递增的列),则不会.在这种情况下,标准JPA不提供任何特定功能(标准JPA仅允许在Id注释字段上使用GenereatedValue).我能想到的唯一方法是插入另一个专用实体,以便从中获取主键.

你的确切要求不清楚,但我假设你在谈论一个随机字段,而不是主键.在这种情况下,您可以使用生命周期回调方法:

@Entity
public class MyEntity {
    ...
    private int counter;
    ...

    @PrePersist
    @PreUpdate
    protected void increment() {
         counter = counter + 1;
    }
}

标签:mysql,jpa,auto-increment,eclipselink
来源: https://codeday.me/bug/20190626/1298670.html

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

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

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

ICode9版权所有