Duplicate entry '...' for key 'PRIMARY';Unable to locate persister:...

1.数据库数据导出导入过程中,导入时,删除数据库中某些元素,再重新导入回来的时候,出现此错误:

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '7033a0bd-c2cf-4120-bb8c-edd1c3015130' for key 'PRIMARY'


直接原因:当数据库中存在与此元素主键相同的元素时,重复加会导致此错误。

深层原因:@Transient注解的属性导出时为空,导入时,contains方法调用的重写的equals方法将原本相同的两个元素判断为不相同,导致重复加;或者依赖的某个属性为实体,但此实体未重写equals和hashcode方法,实际相同的判断为不同。

解决:重写equals时不对@Transient注解的属性进行对比;将依赖的实体的equals方法也重写。


2.org.hibernate.UnknownEntityTypeException :Unable to locate persister:

直接原因:某个类未持久化

深层原因:A类继承B类,A类持久化了,B类未持久化,使用B类Dao时会报此错,因为B类未持久化 

解决:将B类持久化;或将使用B类的地方换为A类

猜你喜欢

转载自blog.csdn.net/u010898743/article/details/78676294
今日推荐