Hibernate常见问题 No row with the given identifier exists问题的解决办法及解决


(1)在学习Hibernate的时候遇到了这个问题“No row with the given identifier exists”在网上一搜看到非常多人也遇到过这个问题!

问题的解决办法肯定是有多种,下面解决比較可能的原因。


(2)我说一下当时我出现错误的时候,是利用hibernate动态创建数据库的。错误提示的信息是对象未找到而发出异常!

然后后边的是未找到的文件路径,可是细致检查并没有错误!可是看下边的解释错误出现的原因:SessionFactoryImpl还有SessionImple有关的

这就快非常easy想到是由于处理数据库的原因造成的!然后在看到最后的一个错误 即是我项目下的TestMain.java:16 处点进去!恍然大悟 原来是我调用的函数是“删除操作”(想把自己hu死!

) 想一下我的数据库是动态创建的一開始肯定没有数据 所以出现删除失败!

(3)通过我解决这个问题的方法。大家的问题也非常可能是操作数据库表示出现的错误!

(4)试想一下! 

1.如果有两张表,table1和table2.产生此问题的解决办法就是table1里做了关联table2的时候(一对一或者是 多对一).当hibernate通过table1查找的时候,table2里的数据没有与table1相匹配的,这样就会报No row with the given identifier exists这个错.(一句话,就是数据的问题!)

        2.假如说,table1里有自身的主键id1,还有table2的主键id2(作为table1的外键),这两个字段.

        3.假设hibenrate设置的单项关联,即使table1中的id2为null值,table2中id2中有值,查询都不会出错.可是假设table1中的id2字段有值,可是这个值在table2中主键值里并没有,就会报上面的错!

        4.假设hibernate是双向关联,那么table1中的id2为null值,可是table2中假设有值,就会报这个错.这样的情况眼下的解决的方法就是改成单项关联,或者把不正确应的数据改对!

5.假如说我推断一下,假设遇到创建人id传过来为空值,我推断假设是空值,我把创建人id设为0,可是用户表中userid是主键从1開始自增的,那么这样数据就相应不上了,一查就会出这个错了.这个错在开发刚開始的时候常常发生,由于每一个人的模块都是由相应的人独立开发完毕以后再整合在一起的,每一个人写单独那一块的时候往往会忽略这些,所以整合的时候这些问题往往就都一下子全冒出来了!

        6.这就是报这个错的原因了,知道原因了就对应的改即可了!

(5)在(4)中已经列举了几个出现这个问题的解决办法 可能遇到的问题的解决办法并非这些可是根本原因是操作数据库的时候出现错误!自己好好检查数据库的操作希望能成功。



原文地址:https://www.cnblogs.com/zsychanpin/p/7049141.html