NHibernate报错:No row with the given identifier exists

这个和Hibernate错误差不多,原因是你的数据库里面有脏数据,即:外键关联的对应主键内容不存在,就像报的这个错误,查询出的User没有了引用。

NHibernate报错:No row with the given identifier exists

产生此问题的原因: 

1.有两张表,table1和table2.产生此问题的原因就是table1里做了关联<one-to-one>或者<many-to-one unique="true">(特殊的多对一映射,实际就是一对一)来关联table

2.当hibernate查找的时候,table2里的数据没有与table1相匹配的,这样就会报No row with the given identifier exists这个错.(一句话,就是数据的问题!)。

具体方法:

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

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

 

打上特性标签:

<many-to-one name="KeyField" not-found="ignore" class="Model.Entities.Key, Model" column="field_id" />

 

上一篇:mongoDB常用指令3


下一篇:not exists是后面 是正再否的 关系