在使用JPA时,如何将PrimaryKey(使用序列生成的值)分配给另一个变量?

问题描述 投票:0回答:1

我已经实现了基于定制序列的生成器,该生成器生成实体的主键。我想在持久化实体时将相同的值分配给另一个成员变量。无论如何,这可以做到吗?

java hibernate jpa hibernate-mapping
1个回答
1
投票

您可以使用@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批注,因此将在所有提供程序上都可以使用。

© www.soinside.com 2019 - 2024. All rights reserved.