mybatis 多表关联查询时,一般建议还是使用把需要关联的表的pojo添加到主表对应的pojo中作为它的属性,这样在mapper.xml文件中可以使用assacition(一对一查询),或者colletion(一对多查询)来使用resultMap作为输出映射。
不过最近我们公司的确使用VO的形式(把所要映射的字段,都写在此vo里面,mapper.xml中使用resultType作为输出映射),这样写法还真是有点不太习惯,我也考虑到会不会出现多表关联查询时,会出现重复信息?(因为内链接关联查询,会显示条数最多的表的条数)
在网上看了一下,一般都是通过别名来区别字段重复,这些都是业务不会出现重复记录而已,只是字段冲突而已。
我想业务逻辑返回的是一对多查询的话,返回的是一个list列表,修改别名也不能解决问题吧。我自己考虑的,这种业务估计要使用双重for循环来把重复的记录不要把重复记录插入list集合中吧。但这样做会很麻烦吧。
还是使用resultMap做这样mybatis会帮你做这些。