【Mybatis】Result Maps collection

2022-03-26  本文已影响0人  地主家有30头牛

错误信息:
Result Maps collection does not contain value for com.web.xxx.xxx

发生场景:
针对一张表,自动生成了一套Mapper1后,又自定义了一套Mapper2,返回的数据结构和Mapper1的一样。
Mapper1执行成功,加了Mapper2后Mapper1执行一直报上面的错误。

排错过程:
因为Mapper1是事先验证成功的,加了Mapper2后执行就报错,而且除了以上报错信息外还有一些别的,所以一直以为是Mapper2和Mapper1的一些设置冲突了导致,因为去掉Mapper2后,Mapper1仍然成功,上网查信息,查到相关的就是把Mapper2中的resultMap改成resultType即可解决。

改前:
<select id="getById" resultMap="com.web.hello.model.Brand">

改后:
<select id="getById" resultType="com.web.hello.model.Brand">

错误解消,后来又实验了几次,发现之前查到的信息不是很准确。
准确的说,resultMap和resultType都可以,但是后面的值略有差别。

resultMap:
<select id="getById" resultMap="com.web.hello.mapper.BrandMapper.BaseResultMap">

resultType:
<select id="getById" resultType="com.web.hello.model.Brand">

当然,前提是像我这种情况,我原有一套自动生成的Brand的Mapper,并且新建的Mapper操作就是要复用原来的BaseResultMap。

上一篇下一篇

猜你喜欢

热点阅读