Hibernate结合Mysql执行Session的update方法提示主键冲突


第一次往数据库中插入数据时没有报错,相互的关系也对应上了。但是到我想更新其中一个Role对象里面的menu时就报错

Exception in thread "main" org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
Caused by: java.sql.BatchUpdateException: Duplicate entry '4-3' for key 'PRIMARY'

具体执行时的代码如下

因为我接触编程时间还短,所以这个问题我也不清楚算不算高深,但是我在百度上搜索出来的结果只能知道是主键冲突,却没有解决方法。这个问题困扰我很久了,希望各位高手能帮帮小弟,在此感激不尽!

另外补充一点,我在另一个工程里也是用相同的方法,但是执行起来却没有任何问题。。。我的电脑是WIN7系统

hibernate

winnie 12 years, 3 months ago

在Hibernate配制多对多的关系时,如果不对inverse选项进行配制,则其值默认为false,在Menu和Role的配制中均没有配制此选项会导致Menu和Role都来维护关系,结果是导致关系维护两次。将Role表的inverse设置为true,应该可以解决你的问题。

虐灯狂人爱迪生 answered 12 years, 3 months ago

Your Answer