我有一个映射为实体的类,用于将其持久化到数据库中。我有一个id字段作为主键,因此每次对象被持久化时,id的值都从序列"myClass_pk_seq"中检索出来,代码如下。
@Entity
@Table(name="myObjects")
public class MyClass {
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="sequence")
@SequenceGenerator(name="sequence", sequenceName="myClass_pk_seq", allocationSize=1)
@Column(name="myClassId")
private Integer id;
private Integer code;
...
}
我需要在"code"属性中创建类似于id的东西。我需要有一个序列,以便我可以将下一个序列值分配给代码(以保留该值以防用户想要预订但不保留数据)。我的意思是,用户将看到该字段,如果他不知道输入什么,他可以按一个按钮,在屏幕上接收到下一个可能的值(他可以接受或拒绝)。如何获取在JPA中定义的序列的下一个值(并增加其值),而不为非主键字段持久化数据?我只想要一个方法,它调用与"code"字段相关联的序列上的nextval,并返回该值。在JPA中使用注释实现这个功能的最佳方法是什么?谢谢。