2012-04-09 62 views
0

我有一个MySQL表,我存储在枚举字符串值您可以使用整数值而不是EnumType.STRING或ORDINAL保存枚举吗?

我的模型注释:

@Enumerated(EnumType.STRING) 

我的枚举的样子:

public enum SomeEnum { 

    BLUE(0), 
    YELLOW(1), 
    RED(2), 

    private int value; 

    public SomeEnum(int value) { 
    this.value = value; 
    } 

} 

我希望我可以以某种方式将枚举的整数'值'存储在我的数据库中,然后在hibernate将模型加载到java类时再次使用枚举的值解析它。

我不想使用序数值,因为它不够稳定。而且我不想使用mysql枚举类型,因为它没有任何理由将它与mysql关联起来。

这是可能的吗?

回答

2

你为什么不尝试用一个字段是整型(不一一列举),如果你愿意,你刚刚获得/从设置你有什么类型的枚举?

+0

我该怎么做? – Blankman 2012-04-09 16:49:51

+0

这是唯一能够与所有JPA提供商合作的解决方案。 – sinuhepop 2012-04-09 20:40:01

0

在Grails中,你可以添加一个getId方法并让它返回你想要使用的值,因为它们已经为它写了一个自定义的UserType。 This article有一个创建类似UserType的例子,以便将Enum中的任意值映射到数据库。

相关问题