数据库部分常见错误汇总

1.当出现这个异常时:
javax.persistence.NonUniqueResultException: result returns 2 elements
表明一个表中的一个字段中有两个相同的内容,而这个内容本来不应该重复的,但可能某种原因出现重复数据,譬如表table1中字段classID本来不允许重复(该表id为主键,classID为另一表外键),但中间却出现了两个一样的数据,如“1”,其他表将它做为外键时,不知道取哪个记录,所以报上述错误。
我用了其他方法找到了这个原因,费了半天劲。使用这个方法找出重复记录:
select ta1.* from table1 ta1,table1 ta2
where ta1.id<>ta2.id and ta1.classID = ta2.classID;

2.Hibernate里的重复记录More than one row with the given identifier was found
表中有两条关键字一样的记录。
第一次使用Hibernate的过程中,遇到了这个异常,当时看来看去也没发现什么错,最后发现原来是数据库中的数据关系和model中关系部一致,例如:
在model中类A和类B是一对一关系,但是在数据库中A和B的关系是一对多的,此时运行程序就会抛出此异常,此时你应该清空一下数据库。
希望此贴可以让Hibernate的初学者有所帮助,节省时间。

你可能感兴趣的:(数据库)