我们正在使用
mybatis-spring = 1.1.1
mybatis = 3.1.1
spring = 3.2.0
MapperScannerConfigurer - to scan mappers
我们如何在多个Mapper xml文件中重用resultMap?
在这个已回答的问题"Reusing MyBatis ResultMap in multiple mapper.xml"
中解决方案是使用mybatis-config.xml文件并在该文件中添加resultMap详细信息(或导入该文件中的所有映射器文件)。
但是我们没有使用该文件而是使用mybatis-spring的MapperScannerConfigurer。
那么我们如何使用MapperScannerConfigurer实现相同的功能呢?
例如,我们有一个userMapper.xml。
<resultMap id="user" type="com.domain.ModelUser">
<result>..</result>
...
...
</resultMap>
我们需要在例如managerMapper.xml中使用此resultMap 并需要重用“user”resultMap。
例如
<select id="getManager" resultMap="com.domain.ModelUser.user">
select .......
</select>
现在它抛出错误 java.lang.IllegalArgumentException:Result Maps集合不包含com.domain.ModelUser.user的值
截至目前,它不知道如何以及在何处在UserMapper.xml文件中找到resultMap
任何帮助和指导都将受到赞赏。
感谢您的时间和帮助。
答案 0 :(得分:0)
即使使用Spring和MapperScanner,您仍然可以使用mybatis-config.xml
。此xml文件不必须是基本MyBatis的完整(或有效)配置。只需创建一个这样的简单配置:
<config>
<mapper namespace="foo">
<resultMap id="user" type="com.domain.ModelUser">
<result>..</result>
...
...
</resultMap>
</mapper>
</config>
使用SqlSessionFactoryBean.setConfigLocation()
引用此文件。它将在创建SqlSessionFactory时加载,并且可以使用提供的命名空间进行访问。
答案 1 :(得分:0)
我知道现在已经很晚了,但我的一个项目也遇到了类似的异常。在id
查询中使用resultMap
的{{1}},如下所示:
getManager