本文主要是介绍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类
这篇关于Duplicate entry '...' for key 'PRIMARY';Unable to locate persister:...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!