2 z08050211 z08050211 于 2013.08.06 14:24 提问

mybatis resultType和resultMap区别

前几天做项目用到mybatis,在resultMap中配的collection关联查询,但在select的配置中用的是resultType,程序运行时一直获取不到管理查询的数据,在网上找了写信息,如下:
MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,但是resultType跟resultMap不能同时存在。在MyBatis进行查询映射的时候,其实查询出来的每一个属性都是放在一个对应的Map里面的,其中键是属性名,值则是其对应的值。当提供的返回类型属性是resultType的时候,MyBatis会将Map里面的键值对取出赋给resultType所指定的对象对应的属性。所以其实MyBatis的每一个查询映射的返回类型都是ResultMap,只是当我们提供的返回类型属性是resultType的时候,MyBatis对自动的给我们把对应的值赋给resultType所指定对象的属性,而当我们提供的返回类型是resultMap的时候,因为Map不能很好表示领域模型,我们就需要自己再进一步的把它转化为对应的对象,这常常在复杂查询中很有作用。
按照这种说法应该可以获取到关联查询的信息的,很困惑,求解答!

1个回答

zhugeyangyang1994
zhugeyangyang1994   2016.03.07 07:52

估计有可能出现冲突的属性比如id如果不想使用map可以使用别名来解决

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!