使用 jpa 自动生成字符串非主键值

Auto generating a String non-primary key value using jpa

请帮助我找到解决问题的方法。 我的实体中有一个 属性 类型的字符串,它不是主键。 这将充当系统为我的项目中的用户生成的唯一配置文件 ID。 我想像特定大小的随机字符串一样自动生成此值。

你能帮我找到一个解决方案吗? 我已经尝试了@Generator 和自定义 id 生成器 class。但仍然 null 被插入到数据库中的字段中。

我正在使用 maria db。

您好,您可以使用休眠事件。

@PostPersist 在实体管理器持久化操作实际执行或级联后执行。此调用在执行数据库 INSERT 后调用。

从 Java 5 开始,UUID class 提供了一种生成唯一 ID 的简单方法。 UUID生成的标识符其实是全球唯一标识符

请按照示例进行操作。

public class TestModel {
    @Column("column_name")
    private String uid;

    //setter and getter for uid

@PrePersist
protected void onCreate() {
    // set the uid 
    setUid(java.util.UUID.randomUUID());

}
}

有关@PrePersist 的更多信息,请在下面找到 link。 https://docs.jboss.org/hibernate/entitymanager/3.5/reference/en/html/listeners.html