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

3 jpa mariadb

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

您能帮我找到解决方案吗?我尝试过 @Generator 和自定义 id 生成器类。但仍然将 null 插入到 db 中的字段中。

我正在使用玛丽亚数据库。

Sud*_*kar 6

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

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

从 Java 5 开始,UUID 类提供了一种生成唯一 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());

}
}
Run Code Online (Sandbox Code Playgroud)

请找到以下链接以获取有关@PrePersist 的更多信息。 https://docs.jboss.org/hibernate/entitymanager/3.5/reference/en/html/listeners.html