2013-05-29 128 views
0

我正在开发Java应用程序使用Java 6Hibernate 3.6.9库。我想创建这是密切相关的特定类的枚举,所以我想将它定义类的一部分:在Hibernate中映射枚举子类型

package org.mycompany.container; 

public class Container{ 

    public enum ContainerType{ 
     SMALL,MEDIUM,BIG 
    } 

    private ContainerType _ContainerType; 

    private Integer _Id; 

    //Getter and setters 

} 

然后我要地图我的容器类在Hibernate配置文件(我不不使用注释)。所以我有这个XML件(类的包是在休眠映射文件的开头指定):

<class name="Container" table="tcontainer"> 
    <id name="_Id" column="id"> 
     <generator class="increment" /> 
    </id> 
    <property name="_ContainerType" column="container_type"> 
     <type name="org.hibernate.type.EnumType"> 
      <param name="enumClass">org.mycompany.container.Container.ContainerType</param> 
      <param name="type">12</param> 
     </type> 
    </property> 
</class> 

然而,休眠似乎并不承认ContainerType类,我也得到一个ClassNotFoundException。我已经做了几次这样的枚举作为一个单独的类。

任何解决方案?汇集你的想法。

+0

你在同一项目中有两个HBM文件和你的类?因为它可能是一个依赖项问题 – fGo

回答

1

试试这个:

org.mycompany.container.Container$ContainerType 
+0

它完成了工作;-) –

+0

和这个“我已经做了几次这样的enum作为一个单独的类。”没有工作? – fGo

+0

@fGo,当然是有用的,但对于设计概念,我想保留课堂内的枚举。 –