解决Mybatis一对多/多对多查询时实体类中只存入了一条数据

问题描述: 
如果三表(包括了关系表)级联查询,明细表的多条数据只将第一条/最后一条数据存入实体类。

 

三个表,权限表(Permission),用户组表(Group),中间表(group_per)

实体类就不写上来了。

mapper映射文件如下:



	
	
	
	
	
	
		
		
		
		
		
		
		
	

这是因为主表和明细表的id字段名相同造成的。 
问题的关键在于resultMap中如果不定义类似主键之类的能够区分每一条结果集的字段的话,会引起后面一条数据覆盖前面一条数据的现象。

解决方法一: 
修改主表或者明细表的id名,保证不一致就行

解决方法二: 
查询结果起别名 

你可能感兴趣的:(JAVA)