2016-04-14 41 views
0

Bir varlık özelliğini tablonun bir enum sütunuyla eşlemeye çalışıyorum. Yapılandırma XML kullanıyor. Ama ne zaman kod çalıştırıyorsam doğrulanırken bir hata atıyor.XML Yapılandırması kullanılarak Hazırda Beklemenin Eşleştirilmesi

<!DOCTYPE hibernate-mapping PUBLIC 
"-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
<hibernate-mapping> 
    <class name="com.sample.employeemanager.pojo.Employee" table="employees"> 

     <property name="gender"> 
      <column name="gender" /> 
      <type name="org.hibernate.type.EnumType"> 
       <param name="enumClass">com.sample.employeemanager.pojo.support.Gender</param> 
      </type> 
     </property> 

    </class> 
</hibernate-mapping> 

ben google aracılığıyla bu çözüm buldu - takiben

benim eşleştirme yapılır. aşağıdaki gibi

Ve alıyorum hatadır:

public enum Gender { 
    M, F 
} 

enum ayrı kaynak dosyasıdır unutmayın:

Initial SessionFactory creation failed. 
org.hibernate.HibernateException: Wrong column type in employees.employees for column gender. Found: enum, expected: integer 
    at org.hibernate.mapping.Table.validateColumns(Table.java:383) 
    at org.hibernate.cfg.Configuration.validateSchema(Configuration.java:1277) 
    at org.hibernate.tool.hbm2ddl.SchemaValidator.validate(SchemaValidator.java:155) 
    at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:508) 
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1760) 
    at com.sample.employeemanager.common.HibernateUtil.buildSessionFactory(HibernateUtil.java:16) 
    at com.sample.employeemanager.common.HibernateUtil.<clinit>(HibernateUtil.java:9) 
    at com.sample.employeemanager.common.EmployeeManager.main(EmployeeManager.java:16) 

cinsiyet enum aşağıda benziyor.

Problemin ne olabileceği hakkında bir fikrin var mı?

cevap

0

Aşağıdaki paramın tip etiketinin içine eklemeniz gerektiğini düşünüyorum.

<param name="useNamed">true</param> 

Thnaks, Amit Kumar