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