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 回答