前言:
我们在用mybatis时,经常写sql的查询select语句时会用到resultMap去映射某些表的字段(实体类名与表名不一致时),而我错误理解为只要sql语句查询得出来(不用加where条件时) 就不用添加resultMap映射,这就是导致为什么会出现外键报错的原因。
翻译:无法添加或更新子行:外键约束失败
原因: 该外键查不到指向表的字段的值,字段不匹配导致注入失败。
为什么查不到:因为没有添加resultMap映射字段,即使sql查出来了,也无法注入实体类(字段不匹配)。
结:不管sql能不能查得到,只要字段不匹配,还是建议加上resultMap映射,防止查询结果无法注入实体类而造成外键约束的报错。