【发布时间】:2011-06-29 06:16:39
【问题描述】:
我有很多 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;
}
}
【问题讨论】:
标签: java hibernate annotations