Hibernate – 如何映射EnumSet
我有一个Color Enum
public enum color { GREEN, WHITE, RED }
我有包含它的MyEntity。
public class MyEntity { private Set colors; ...
我已经有一个UserType来映射我的枚举。
你知道如何在Hibernate hbm.xml中映射一组枚举吗?
我需要UserType还是最简单的方法?
谢谢
编辑:只是为了评论,我正在寻找hbm.xml配置而不是@CollectionOfElements Annotation
我使用EnumSet映射线程中的解决方案,它依赖于
。 你只需要一个带有id和字符串的表来映射集合(这里是MYENTITY_COLOR
)。 并且映射看起来像( EnumUserType
是来自Java 5 EnumUserType的那个 ):
com.stackoverflow.q2402869.Color
查询可能如下所示:
select distinct e from MyEntity e join e.colors colors where colors IN ('WHITE', 'GREEN')
整个解决方案适用于加载,保存和查询 (jasonab的信用)。
看来你需要使用@CollectionOfElements注释。 该文件位于http://docs.jboss.org/hibernate/stable/annotations/reference/en/html_single/#entity-hibspec-collection-extratype ,第2.4.6.2.5章。 元素或复合元素的集合’。 该示例还映射了一组枚举。