0

明らかな何かが欠けていることに気づきました。それが何であるかわからない、誰かが私が見ていないものを見るのを手伝ってくれることを願っています。

私の会社は、ファイルのマッピングから始めて、スキーマファイルとJavaファイルを生成します。

マップする方法を理解しようとしています。限られた数の文字列に対して1つしか持てない列を持つテーブルがあります:'DOES_NOT_EXIST'、'NEW、INITIATILIZE'、'RUNNING'、'TEARDOWN'

TABLE STATE_MACHINE
    ....
    STATE VARCHAR2(32)
.....


public enum StatEnum {
    DOES_NOT_EXIST, NEW,INITIATILIZE, RUNNING, TEARDOWN
}

私たちがやりたいのは、

StateMachine machine = new StateMechine();
machine.state=StatEnum.NEW;
....
Persistance.save(machine)

問題は、「トランザクションをコミットできません:JDBCバッチ更新を実行できませんでした:ORA-00932:データ型に一貫性がありません:期待されるBINARYがNUMBERを取得しました」を受信して​​います。

HBMマッピングファイルはcom.foo.StateEnum12に沿ったものでなければならないと思います

私がやろうとしていることを実行するドキュメントを教えてもらえますか?

私が学ぶのを手伝ってくれてありがとう...

4

1 に答える 1

0

最終的に、EnhancedUserTypeとParameterizedTypeを実装するクラスを作成しました。

上記のクラスを実装するパッケージに、列挙型クラスを配置しました。

私のHibernatexmlには

    <property name="state" column="state">
        <meta attribute="use-in-tostring">true</meta>
        <meta attribute="field-description">state types</meta>
        <type name="com.....h.core.domain.usertype.MyStrEnumUserType">
            <param name="enumClassname">com.......core.domain.usertype.StateTypeEnum</param>
        </type>
    </property>
于 2012-05-08T20:09:04.007 に答える