![](/img/trans.png)
[英]How to set Id of one entity to the Id of another entity using JPA?
[英]How to use auto increment ID to set another variable in the entity in JPA
我的实体中有一个自动递增键。
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id")
private Long id;
我在基于上述ID创建的对象中还有另一个变量数据 。
例如:
private String data;
public String setData(String str){
this.data = str + this.getId();
}
创建对象时如何设置data
变量。
我使用过PrePersist批注,在这种情况下,此批注无用。
保存实际document
之前,您无法生成ID。 您所能做的就是保存文档,设置数据部分,然后再次保存,例如
Document saved = jpaRepository.save(document);
saved.setData(saved.getId() + "blah");
jpaRepository.saveAndFlush(saved);
您可以在事务下执行这些步骤以保持一致性。
您将不得不使用数据库触发器,因为通过IDENTITY设置的ID的值直到插入发生后才可用。 然后,您将需要使用提供程序特定的方法来通过触发器获取设置的值,例如EclipseLink的eclipse.org/eclipselink/documentation/2.5/jpa/extensions/…。 或者,您可以使用persist,flush强制插入应获得ID值的插入,然后更新您的字段值。 一种替代方法是使用表排序或其他允许预分配的生成类型,因此id值在持久化时可用。 –
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.