问题1: 当IDENTITY_INSERT设置为OFF时,不能为表“***”中标识列插入显式值。。
原因:数据库中,插入了表中的主键,主键为自增,会报错。
解决:自己重写插入的SQL,不使用通用mapper自动生成的插入方法。
注意:重写的SQL记得插入的字段中,不能有主键了。
问题2:对数据库进行操作时,提示找不到或者是不认识拿来判断的字段
例如:
<delete id="exitGroup" parameterType="java.lang.String">
DELETE from Group_Members WHERE groupId=#{groupId} AND memberId=#{memberId}
</delete>
提示不认识groupId或者是memberId
原因:通用mapper自动生成的时候,会改变数据库中某些原有的命名,如groupId变成groupid
解决:在mapper层中这样写(加一个@Param("**"))
void exitGroup(@Param("memberId")String memberId,
@Param("groupId")String groupId);
问题3:在mybatis中,如果关联了多个数据库,数据库接口中有相同的属性名称,要区分开,否则会影响查询结果
例如:
截图中两个数据库中都有id,将关联查询的userClient的id加个标识(clent_id)