2013-05-29 4 views
0

Я разрабатываю приложение Java с использованием Java 6 и Hibernate 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> 

Однако, Hibernate, кажется, не распознает класс ContainerType и я получаю ClassNotFoundException. Я сделал это несколько раз с перечислением как отдельный класс.

Любое решение? Объедините свои идеи.

+0

у вас есть оба HBM файлы и ваш класс в том же проекте? Потому что это может быть проблема зависимости – fGo

ответ

1

Попробуйте это:

org.mycompany.container.Container$ContainerType 
+0

Это сделало работу ;-) –

+0

, и это «я сделал это несколько раз, имея перечисление как отдельный класс». не работает? – fGo

+0

@fGo, конечно, это работает, но для концепций дизайна я хочу сохранить enum внутри класса. –

Смежные вопросы