2013-04-05 2 views
4

У меня есть перечисление, как показано ниже.Отображение перечисления в hibernate hbm?

public enum ExampleEnum { 
    ONE(1), TWO(2); 

    private int action; 

    private ExampleEnum (int action){ 
     this.action = action; 
    } 

    /** 
    * @return the action 
    */ 
    public int getAction() { 
     return action; 
    } 

    /** 
    * @param action the action to set 
    */ 
    public void setAction(int action) { 
     this.action = action; 
    } 


} 

Мне нужно сохранить целочисленные значения не ОДИН и ДВА. Как я могу это сделать? у меня ниже config в моем hbm:

<property name="action"> 
      <column name="ACTION" /> 
      <type name="org.hibernate.type.EnumType"> 
       <param name="enumClass">com.ExampleEnum</param> 
      </type> 
     </property> 

Нужно ли мне иметь любую другую конфигурацию для сохранения целых чисел? Пожалуйста, помогите мне!

Спасибо!

+0

' Все постоянные классы должны иметь конструктор по умолчанию (который может быть непубличный), так что Hibernate может инстанцирует их с помощью Constructor.newInstance(). Рекомендуется, чтобы у вас был конструктор по умолчанию, по крайней мере, для видимости пакета для генерации прокси-сервера во время работы в Hibernate. ' –

+0

https://forum.hibernate.org/viewtopic.php?p=2377095 – Thihara

+0

Возможный дубликат. См. Этот вопрос: http://stackoverflow.com/questions/9839553/hibernate-map-enum-to-varchar?rq=1 – dcernahoschi

ответ

0

`

<class name="package.class" table="database table name"> 
<id name="get/set parameter....your first attribute" type="int" column="data base columnname"> 
<generator class="increment"/><!--using auto increment--> 
</id> 
<property name="get/set parameter your second attribute"> 
<column name="data base column name"/> 
</property> 
</class>` 
Смежные вопросы