Ike*_*ker 9 java annotations hibernate
我有许多Java枚举,我坚持使用Hibernate.据我所知,有两种不同的标准方法来保存这些枚举:
@Enumerated(EnumType.ORDINAL)
Run Code Online (Sandbox Code Playgroud)
这是默认值,它只保留枚举中的序数值.
@Enumerated(EnumType.STRING)
Run Code Online (Sandbox Code Playgroud)
这会保留枚举值的名称.
到目前为止,这些对我来说工作得很好,但现在我有一个新的枚举,我希望从枚举中保留一个既不是序数也不是名称的自定义值.这可能吗?我四处搜索,看到很多人都在询问如何保留名称,这很容易使用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;
}
}
Run Code Online (Sandbox Code Playgroud)
是的,我也缺少 JPA 解决方案。
解决方法:
private int permissionValue;
private transient Permission permission;
Run Code Online (Sandbox Code Playgroud)
然后在权限的getter/setter中进行转换。
也许您还需要实现一些生命周期方法?(我不确定。) http://download.oracle.com/docs/cd/B32110_01/web.1013/b28221/undejbs003.htm#BABIAAGE
| 归档时间: |
|
| 查看次数: |
7528 次 |
| 最近记录: |