Tha*_*ham 5 mysql jpa auto-increment eclipselink
我使用 Eclipselink 作为我的 JPA 提供程序,如何使字段自动递增?
我只想要 1 个实体的自动增量字段。
是的,我明白了,这就是你在问题中写的。但它可以有多种解释,重复同样的事情而不澄清并没有多大帮助:)
那么帕斯卡的方式是否有效,或者我必须按照字节码的建议进行操作,从 MyEntity 查询 select (max) counter + 1 ,以获取下一个值,然后将其设置为设计字段,即持久性?
如果您想为每个实体记录增加一个字段(例如,id=1 的“计数器” Order,id=2 的另一个“计数器Order”),我的建议将起作用。
如果您想要类似于主键的行为(即自动增量列),它不会。在这种情况下,标准 JPA 不提供任何特定的功能(标准 JPA 仅允许GenereatedValue在Id带注释的字段上)。我能想到的唯一方法是插入另一个专用实体只是为了从中获取主键。
您的确切要求尚不清楚,但我假设您正在谈论随机字段,而不是主键。在这种情况下,您可以使用生命周期回调方法:
@Entity
public class MyEntity {
...
private int counter;
...
@PrePersist
@PreUpdate
protected void increment() {
counter = counter + 1;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14209 次 |
| 最近记录: |