gpt4 book ai didi

java - 单个非标识字段中的 Hibernate UUID 生成器

转载 作者:搜寻专家 更新时间:2023-11-01 03:37:57 24 4
gpt4 key购买 nike

我试图在 DB 模型中强制 hibernate 生成 UUID 字段,但问题是该字段不是主要的 @Id 字段,无法以这种方式完成。

我的模型是这样的:

@Entity
@Table(name = "myModel")
public class MyModel {
private Long id;
private UUID uuid;

@Id @GeneratedValue(strategy=GenerationType.AUTO)
public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

@Column(columnDefinition = "BINARY", length = 16)
@GenericGenerator(name = "uuid", strategy = "uuid2")
public UUID getUuid() {
return uuid;
}

public void setUuid(UUID uuid) {
this.uuid = uuid;
}
}

还有其他方法可以实现这个策略吗?

更新:

@Entity
@Table(name = "myModel")
public class MyModel {
private Long id;
private UUID uuid;

@Id @GeneratedValue(strategy=GenerationType.AUTO)
public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

@Column(columnDefinition = "BINARY", length = 16)
@Type(type="uuid-binary")
public UUID getUuid() {
return uuid;
}

public void setUuid(UUID uuid) {
this.uuid = uuid;
}
}

注意 @GenericGenerator 不再需要,因此已被删除。

最佳答案

为此可以使用下面的代码

public UUID getUuid() {
return uuid == null ? UUID.randomUUID() : uuid;
}

发布这个已经很晚了,但它可能会对其他人有所帮助。

关于java - 单个非标识字段中的 Hibernate UUID 生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24511561/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com