zoukankan      html  css  js  c++  java
  • Nhibernate出现No row with the given identifier exists问题的产生原因及解决方法

    产生此问题的原因:

    有两张表,table1和table2.产生此问题的原因就是table1里做了关联<one-to-one>或者<many-to-one>来关联table2.当hibernate查找的时候,table2里的数据没有与table1相匹配的,这样就会报No row with the given identifier exists这个错.(一句话,就是数据的问题!)

    假如说,table1里有自身的主键id1,还有table2的主键id2,这两个字段.

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

    如果hibernate是双向关联,那么table1中的id2为null值,但是table2中如果有值,就会报这个错.这种情况目前的解决办法就是改成单项关联,或者把不对应的数据改对!

    解决方法:

    1.修改数据使关联字段能查询到数据

    2.在<many-to-one>中设置not-found="ignore",此时如果关联关系不存在,对应的属性值为Null.

  • 相关阅读:
    Model1简介
    修改Maven的本地仓库地址
    JavaWeb实现上传文件
    数据库
    集合
    JavaWeb
    Java基础
    Redis 中 redis.conf配置详细解析
    利用Java生成二维码
    利用dom4j读写XML
  • 原文地址:https://www.cnblogs.com/hyl8218/p/Nhibernate.html
Copyright © 2011-2022 走看看