有两张表A和B,产生此问题的原因就是A对B做了 one-to-one
或者 many-to-one
关联。当hibernate查找的时候,B里的数据没有与A相匹配的,这样就会报 No row with the given identifier exists
这个错误。
假设,A里有自身的主键 id1
,还有B的主键 id2
这两个字段
- 如果是单向关联,即使A中的
id2
为null
值,B中id2
中有值,查询都不会出错。但是如果A中的id2
字段有值,但是这个值在B中主键值里并没有,就会报错 - 如果是双向关联,那么A中的
id2
为null
值,但是B中如果有值,就会报错
这种情况目前的解决办法就是改成单项关联,或者把不对应的数据改对