Java 休眠重复条目';1';对于键';初级';在第一次插入表时

Java 休眠重复条目';1';对于键';初级';在第一次插入表时,java,hibernate,Java,Hibernate,当我第一次插入到表中时(在删除/创建我的数据库之后),我收到键“PRIMARY”的错误重复条目“1”。这会导致回滚。如果我再次执行,则行插入正常。谁能向我解释一下我做错了什么 我有一个用户类(在数据库中预先填充),它附带了一个任务列表。数据库中有表users、user tasks和tasks User.hbm包含 <id name="id" type="java.lang.Integer"> <column name="id" />

当我第一次插入到表中时(在删除/创建我的数据库之后),我收到键“PRIMARY”的错误重复条目“1”。这会导致回滚。如果我再次执行,则行插入正常。谁能向我解释一下我做错了什么

我有一个用户类(在数据库中预先填充),它附带了一个任务列表。数据库中有表users、user tasks和tasks

User.hbm包含

<id name="id" type="java.lang.Integer">
            <column name="id" />
            <generator class="increment" />
        </id>
<list name="tasks" cascade="all" table="user_tasks" lazy="false">
            <key column="user_id"/>
            <index column="id"/>
            <many-to-many column="task_id" class="com.some.package.classes.Task"/>
        </list>`
<id name="id" type="java.lang.Integer">
        <column name="id" />
        <generator class="increment" />
    </id>
<list name="users" cascade="all" table="user_tasks" lazy="false"
    inverse="false">
        <key column="task_id"/>
        <index column="id"/>
        <many-to-many column="user_id" class="com.some.packageclasses.User"/>
    </list>

Increment
如果有多个进程写入同一个表,那么肯定会有冲突


因此,请使用并尝试。

我已经有一段时间没有使用hbm文件了,但它不应该是:

    <id name="id">
        <column name="id" />
        <generator class="native" />
    </id>


在转储和恢复MySQL数据库后,我遇到了相同的错误。重新启动应用服务器(在我的例子中是Tomcat)解决了这个问题。

只是好奇地想知道。为什么选择使用xml配置而不是注释?或者这是一个遗留项目?我对这个项目还不太熟悉。我已经使用MyEclipse生成了hibernate层。恐怕我已经尝试了native和identity,但在第一次尝试插入时都会产生相同的错误。我将native与mysql结合使用,以前从未遇到过这个问题。我还建议使用JPA注释I.o.hbm文件。想知道更多的信息,我会告诉你的。干杯。我还建议使用Spring,这将使您的生活更加轻松。恐怕我已经尝试了native和identity,但在第一次尝试插入时都会产生相同的错误。
    <id name="id">
        <column name="id" />
        <generator class="native" />
    </id>