首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何翻译@Enumerated属性的名称?

如何翻译@Enumerated属性的名称?
EN

Stack Overflow用户
提问于 2011-05-16 15:33:44
回答 1查看 265关注 0票数 0

有两个EnumType: as EnumType.ORDINAL和as EnumType.STRING。然而,两者都有缺点:

代码语言:javascript
复制
EnumType.ORDINAL: You must preserve the enum order.

EnumType.STRING: The column width is the max length of the enum names, which maybe very long.

相反,我想介绍枚举类型的缩写:

代码语言:javascript
复制
public Enum MonthEnum {
    January("JAN"),
    February("FEB"),
    March("MAR"),
    ...;

    String abbrev;

    static Map<String, MonthEnum> abbrevs = new HashMap();

    MonthEnum(String abbrev) {
        this.abbrev = abbrev;
        abbrevs.put(abbrev, this);
    }

    public static MonthEnum fromAbbrev(String abbrev) {
        return abbrevs.get(abbrev);
    }
}

@Entity
class Diary {
    @Enumerated(ABBREV)
    Month month;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-12 00:20:23

在JPA 2.0中无法做到这一点。但它可以在Hibernate中使用UserType来完成。但你为什么要。我已经考虑过你的字符串变量的参数,但这个参数不适用于数据库中的任何字符串(varchar)列。还请考虑到枚举可能会在JAVA代码中使用,因此很长的枚举字符串值也会有问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6014340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档