8

Oracleデータベースからデータを取得するためにデータベースコネクタを開発しています。マップするクラスとテーブルがたくさんあるため、Eclipseにプラグインとして含まれているHibernateツールを使用してHibernateマッピングファイルを生成しました。ただし、アプリケーションを実行すると、次の例外が発生します。

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>

ただし、それについてはよくわかりません。それが解決策でない場合は、すべてのhbmsのすべてのタイプを変更したくありません。誰でも助けてくれませんか。

よろしくお願いします。良い一日をお過ごしください。

4

5 に答える 5

2

すべてのマッピング クラスを数回確認しました。最後に、問題は、属性の適切なタイプを持たないマッピング クラスから発生しました... :( ご回答ありがとうございます

于 2013-04-10T12:54:55.100 に答える
0

長さフィールドがありません

<property name="userdefinedrole" type="string">
    <column name="USERDEFINEDROLE" />
</property>
于 2013-02-28T10:44:35.373 に答える