Java Mapped Statements集合已包含值,但我只有一个具有相同签名的方法
如果我删除Java Mapped Statements集合已包含值,但我只有一个具有相同签名的方法,java,mybatis,Java,Mybatis,如果我删除@ResultMap(value=“roleMapper”),就可以了 如何解决此问题?仅考虑问题标题:根据异常消息,它建议只有一个具有相同签名的方法:映射语句集合已包含xyz.ivyxjc.RoleMapper.insertRole的值,在接口xyz.ivyxjc.RoleMapper中,您声明了多个名为insertRole的方法,不管它们的参数是什么,然后它们的签名是不同的 如果语句是在XMLMapper中声明的,而不是在注释中声明的,那么它们将具有相同的id,这就是它无法工作的原
@ResultMap(value=“roleMapper”)
,就可以了
如何解决此问题?仅考虑问题标题:根据异常消息,它建议只有一个具有相同签名的方法:
映射语句集合已包含xyz.ivyxjc.RoleMapper.insertRole的值,在接口xyz.ivyxjc.RoleMapper
中,您声明了多个名为insertRole
的方法,不管它们的参数是什么,然后它们的签名是不同的
如果语句是在XMLMapper中声明的,而不是在注释中声明的,那么它们将具有相同的id,这就是它无法工作的原因
@Select
和@ResultMap
似乎与当前问题完全无关
<mapper namespace="xyz.ivyxjc.RoleMapper">
<resultMap id="roleMapper" type="role">
<id column="id" property="roleName" javaType="string" jdbcType="VARCHAR"/>
<result column="role_name" property="roleName" javaType="string" jdbcType="VARCHAR"/>
<result column="note" property="note" typeHandler="xyz.ivyxjc.MyStringTypeHandler"/>
</resultMap>
</mapper>
@ResultMap(value = "roleMapper")
@Select(value = "select id, role_name as roleName, note from t_role where id=#{id}")
public Role getRole(Long id);
java.lang.IllegalArgumentException: Mapped Statements collection already contains value for xyz.ivyxjc.RoleMapper.insertRole