1

こんにちは私は冬眠に問題があります。リストをSQLiteデータベースに保存しようとすると、リストに保存されているオブジェクトのIDでクラッシュします...データベースの最初の要素は番号0を取得します。リストの最初の要素は正常に保存されますが、別の要素はエラーになります。

今netbeansが言うこと:

重大:データベースの状態をセッションorg.hibernate.StaleStateExceptionと同期できませんでした:バッチ更新が更新[0]から予期しない行数を返しました。実際の行数:0; 予想:1 ..... ..

そして今、私のマップされたクラス

リスト付き

<class dynamic-insert="false" table="users" dynamic-update="false" mutable="true" name="DataClasses.User" optimistic-lock="version" polymorphism="implicit" select-before-update="false">

    <id name="ID" column="ID">
        <generator class="increment" />
    </id>

    <list name="notebooks" outer-join="true" lazy="false" cascade="all" >
        <key column="userID"/>
        <list-index column="ID"/>
        <one-to-many class="DataClasses.Notebook"/>
    </list>

</class>

リストに保存されているオブジェクト

<class dynamic-insert="true" table="notebooks" dynamic-update="false" mutable="true" name="DataClasses.Notebook" optimistic-lock="version" polymorphism="implicit" select-before-update="false">

    <id name="ID" column="ID">
        <generator class="increment"/>
    </id>

    <property name="name" type="string" />
    <property name="text" type="string" />
    <many-to-one name="subject" lazy="false" outer-join="true" class="DataClasses.Subject" column="subject" cascade="all"/>
    <property name="lastModified"/>       
</class>

4

1 に答える 1

1

ジェネレータークラスを「ネイティブ」に変更する必要があると思います-その後、データベースにキーをインクリメントさせます。

于 2013-03-29T18:45:57.997 に答える