gpt4 book ai didi

java - 使用 Hibernate 注释保留枚举属性的自定义值

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:19:06 26 4
gpt4 key购买 nike

我有很多 Java 枚举,我坚持使用 Hibernate。据我所知,有两种不同的标准方法来保存这些枚举:

@Enumerated(EnumType.ORDINAL)

这是默认设置,它只保留枚举中的序数值。

@Enumerated(EnumType.STRING)

这会保留枚举值的名称。

到目前为止,这些方法对我来说效果很好,但现在我有一个新枚举,我想在其中保留枚举中既不是序数也不是名称的自定义值。这可能吗?我四处搜索,看到很多人询问如何保留名称,这可以使用 EnumType.STRING 轻松完成,但我想保留一个可用于在我的 SQL 查询中进行比较的 int。我尝试覆盖 toString() 以返回我的自定义值,但这没有用。

我将在下面粘贴我的 java 枚举。我想保留枚举中的 int 值成员。

提前致谢!

public enum Permission {
VIEW (4),
CHANGE(6),
FULL(7);

private int value;

Permission(int value) {
this.value = value;
}

public int getValue() {
return value;
}
}

最佳答案

您可以实现具有所需行为的 UserType 并配置 Hibernate 以将其与 @Type 一起使用注释。

参见,例如,UserType for persisting a Typesafe Enumeration with a VARCHAR column .

关于java - 使用 Hibernate 注释保留枚举属性的自定义值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5032116/

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