使用 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
请帮助我找到解决问题的方法。 我的实体中有一个 属性 类型的字符串,它不是主键。 这将充当系统为我的项目中的用户生成的唯一配置文件 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