我有一个映射为实体的类,以将其保存在数据库中。我有一个 id 字段作为主键,因此每次保留对象时,都会从序列“myClass_pk_seq”中检索 id 的值,代码如下所示。
@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 中使用注释执行此操作的最佳方法是什么?
Thanks.
我只想有一个方法在与“code”字段关联的序列上调用 nextval 并返回值。在 JPA 中使用注释执行此操作的最佳方法是什么?
- 当用户按下按钮时,使用本机 SQL 获取下一个序列值。手动创建序列或使用“假实体”让 JPA 为您创建序列。
- 如果您不想使用本机 SQL,请根据序列插入一个实体并获取其 id。
这两种解决方案听起来都有点难看。也许您可以简单地使用随机生成器,例如 UUID 生成器。
事实上,你并没有提到任何关于独特性的事情。code
(并且 JPA 注释并不表明它必须是唯一的)。为什么不返回一个随机整数?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)