我使用EnumSet映射线程中的解决方案,该解决方案依赖于的使用
<elementcolumn>。您只需要一个具有ID和字符串的表即可映射集合(
MYENTITY_COLOR此处)。映射看起来像这样(这
EnumUserType是Java
5
EnumUserType中的映射):
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping> <typedef name="color" > <param name="enumClassName">com.stackoverflow.q2402869.Color</param> </typedef> <class name="com.stackoverflow.q2402869.MyEntity" entity-name="MyEntity" table="MYENTITY"> <id name="id" type="java.lang.Long"> <column name="ID" /> <generator /> </id> <set name="colors" table="MYENTITY_COLORS"> <key column="ID" not-null="true"/> <element type="color" column="COLOR"/> </set> </class></hibernate-mapping>
查询可能如下所示:
select distinct e from MyEntity e join e.colors colors where colors IN ('WHITE', 'GREEN')
整个解决方案可 很好地用于加载,保存和查询 (归于jasonab)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)