java如何使用自动增量ID在JPA中的实体中设置另一个变量
我的实体中有一个自动递增键
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id")
private Long id;
我在基于上述id创建的对象中有另一个变量data
例如:
private String data;
public String setData(String str){
this.data = str + this.getId();
}
如何在创建对象时设置data
变量
我以前使用过PrePersist注释,在本例中,该注释不起作用
# 1 楼答案
在保存实际的
document
之前,无法生成id。您所能做的就是保存文档,设置数据部分,然后再次保存您可以在事务下执行这些步骤以保持一致性
# 2 楼答案
您必须使用数据库触发器,因为通过标识设置的ID值在插入之后才可用。然后需要使用特定于提供者的方法通过触发器(如EclipseLink的eclipse)获取值集。/jpelink/org/extensions/jpelina/。或者,您可以使用persist、flush强制插入该ID值,然后更新字段值。另一种方法是使用表排序或其他允许预分配的生成类型,以便id值在persist上可用