我已经实现了基于定制序列的生成器,该生成器生成实体的主键。我想在持久化实体时将相同的值分配给另一个成员变量。无论如何,这可以做到吗?
您可以使用@PostPersist
带注释的方法。为简单起见,我只使用一个自动生成的ID。
@Entity
@Table(name = "PERSON")
class Person {
@Id
@GeneratedValue
private Long id;
private Long idDup;
// Getters and setters removed for brevity
@PostPersist
public void perPersist() {
this.idDup = id;
}
}
摘自文档:
@@ PostPersist在实体管理器持久操作实际执行后执行执行或级联。在数据库INSERT之后调用此调用被执行。
请注意,@PostPersist
是JPA批注,因此将在所有提供程序上都可以使用。