Java 在PostPersist事件方法中更新JPA实体

Java 在PostPersist事件方法中更新JPA实体,java,jpa,persistence,Java,Jpa,Persistence,我想更新@PostPersist方法中的实体,以获取生成的ID并将其放入同一表中的另一列: @PostPersist public void postPersist(Customer customer) { customer.setCode("Code_" + customer.getId); } 此更新不会持久保存在数据库中。因此,我应该使用附加到生成Id的字符串“Code”更新实体。@postPersist和@PrePersist都是回调方法。它们在JPA事务之后

我想更新
@PostPersist
方法中的实体,以获取生成的ID并将其放入同一表中的另一列:

@PostPersist
public void postPersist(Customer customer) {
   customer.setCode("Code_" + customer.getId);
}

此更新不会持久保存在数据库中。因此,我应该使用附加到生成Id的字符串“Code”更新实体。

@postPersist@PrePersist都是回调方法。它们在JPA事务之后执行。 在您的情况下,您可以:

  • persist
    方法之后手动设置
    code
    ,并使用此
    code
  • 您可以保留
    @PostPersist
    注释,但在这种情况下,您还需要另一个保存请求
  • 如果您使用的是
    自定义生成器
    ,则可以在保存()之前获取
    id

  • 我会选择第三种选择,非常感谢@Volodya