Java Oracle 11g中的i18n友好枚举排序

Java Oracle 11g中的i18n友好枚举排序,java,sql,oracle,hibernate,oracle11g,Java,Sql,Oracle,Hibernate,Oracle11g,我有许多(30+)Java枚举,它们映射到数据库中的整数ID。我希望能够在不修改许多查询的情况下按这些进行排序,并且能够按照排序顺序进行索引 示例—请注意,许多其他枚举可能有十几个选项,因此这些选项并不是很简单: 表1:人 姓名(varchar)、性别(枚举) 鲍勃,0 弗雷德,0 苏珊,1岁 杰米,2岁 Java枚举- 男(0),, 女(1),, 未知(2) 我希望能够做到按人、按性别排序,排序为“女性”、“男性”、“未知”。(或按数字顺序为1,0,2)。理想情况下,此顺序将根据语言而变化,但

我有许多(30+)Java枚举,它们映射到数据库中的整数ID。我希望能够在不修改许多查询的情况下按这些进行排序,并且能够按照排序顺序进行索引

示例—请注意,许多其他枚举可能有十几个选项,因此这些选项并不是很简单:

表1:人 姓名(varchar)、性别(枚举) 鲍勃,0 弗雷德,0 苏珊,1岁 杰米,2岁

Java枚举- 男(0),, 女(1),, 未知(2)

我希望能够做到按人、按性别排序,排序为“女性”、“男性”、“未知”。(或按数字顺序为1,0,2)。理想情况下,此顺序将根据语言而变化,但可以使用1种语言/数据库

我意识到我可以通过case子句进行排序,但这需要更改应用程序中的大量位置,包括许多动态生成的查询

我还支持postgres,它允许我将其定义为一个枚举(1,0,2),解决所有这些问题,至少对于1种语言/数据库。像这样的东西很有价值

我曾经考虑过用ID和姓名制作一个“性”表,然后根据它进行排序。不幸的是,要按性别对person表(数百万个条目)进行排序,需要相当长的时间,因为我无法在sex列上创建索引(或至少一个在排序中有用的索引)

我也考虑过使用自定义类型,但当时我不太确定如何将其与hibernate集成(自定义类型实际上似乎没有那么灵活)

如有任何想法,将不胜感激。谢谢