我正在開發數據庫連接器以從Oracle數據庫檢索數據。我使用了Hibernate工具作爲Eclipse中的一個插件來生成Hibernate映射文件,因爲我有很多要映射的類和表。然而,當我運行應用程序,我剛纔出現以下情況例外:java.lang.ClassCastException:org.hibernate.type.StringType不能轉換爲org.hibernate.type.VersionType
java.lang.ClassCastException: org.hibernate.type.StringType cannot be cast to org.hibernate.type.VersionType
at org.hibernate.tuple.PropertyFactory.buildVersionProperty(PropertyFactory.java:107)
at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:181)
at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:485)
at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:133)
at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:84)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:286)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1845)
at eu.cartif.dwhconn.database.DBManager.checkDWHStatus(DBManager.java:57)
at eu.cartif.dwhconn.database.DBManager.main(DBManager.java:24)
我想問題可能是HBM文件的屬性的類型:
<hibernate-mapping>
<class name="eu.cartif.dwhconn.database.Ifcactorrole" table="IFCACTORROLE">
<id name="role" type="string">
<column name="ROLE" length="50" />
<generator class="assigned" />
</id>
<property name="userdefinedrole" type="string">
<column name="USERDEFINEDROLE" />
</property>
<property name="description" type="string">
<column name="DESCRIPTION" length="3000" />
</property>
<set name="ifcpersons" table="IFCPERSON" inverse="true" lazy="true" fetch="select">
<key>
<column name="ROLES" length="50" />
</key>
<one-to-many class="eu.cartif.dwhconn.database.Ifcperson" />
</set>
<set name="ifcpersonandorganizations" table="IFCPERSONANDORGANIZATION" inverse="true" lazy="true" fetch="select">
<key>
<column name="ROLES" length="50" />
</key>
<one-to-many class="eu.cartif.dwhconn.database.Ifcpersonandorganization" />
</set>
</class>
</hibernate-mapping>
不過,我不確定,如果這不是解決方案,我不想改變所有HBM中的所有類型。任何人都可以幫助我。
非常感謝你提前, 願你有一個愉快的一天
<property name="userdefinedrole" type="string">
<column name="USERDEFINEDROLE" />
</property>
您確定這是導致該異常的類嗎?其他實體的映射文件如何?你在某個地方使用某個版本還是使用了一個名爲'version'的屬性? – Thomas 2013-02-28 10:47:30
我正在尋找任何屬性或稱爲「版本」的字段,但唯一發現的是<?xml version =「1.0」?> – 2013-02-28 10:56:34
您是否使用註釋以及該類包含一個字段那個名字? – Thomas 2013-02-28 11:13:49