如何使用 JPA 自动生成非主键的 UUID 值

Moh*_*224 2 jpa spring-data spring-data-jpa spring-boot

我有 Spring boot 应用程序,我使用 JPA 层与 PostgreSQL 进行通信。我有一个 UUID 类型的非主键,我想在调用 save 方法时自动生成它。我用 @GenerateValue 注释了该属性,但插入时列值为空。

@Column(name = "USER_UUID")
@GeneratedValue(strategy = GenerationType.AUTO)
private UUID userUuid;
Run Code Online (Sandbox Code Playgroud)

我还创建了该专栏:

ADD COLUMN IF NOT EXISTS user_uuid uuid UNIQUE DEFAULT uuid_generate_v4();
Run Code Online (Sandbox Code Playgroud)

在这种情况下如何自动生成非主 UUID 值?

Bal*_*ala 5

您可以使用 JPA 回调。

 @PrePersist
    protected void onCreate() {
        setUserUuid(java.util.UUID.randomUUID());
    }
Run Code Online (Sandbox Code Playgroud)