mbatis--一对多查询
一、在主表实体类创建从表实体的list集合(主表user,从表account)
public class User implements Serializable { private Integer id; private String username; private String address; private String sex; private Date birthday; //一对多关系映射:主表实体应包含从表实体的集合引用 private List<Account> accounts; public List<Account> getAccounts() { return accounts; }
二、进入xml配置
<!-- 多对多查询配置--> <!-- 定义user的resultmap--> <resultMap id="userAccountMap" type="user"> <id property="id" column="id"></id> <result property="username" column="username"></result> <result property="birthday" column=""></result> <result property="sex" column="sex"></result> <result property="address" column="address"></result> <!-- 配置user中accounts集合的映射;ofType:集合中的类型--> <collection property="accounts" ofType="account"> <id property="id" column="aid"></id> <result property="uid" column="uid"></result> <result property="money" column="money"></result> </collection> </resultMap> <!-- 查询所有 --> <select id="findAll" resultMap="userAccountMap"> SELECT * FROM USER u LEFT JOIN account a ON u.id = a.uid; </select>
三、测试
@Test public void testFinaAll(){ List<User> users = userDao.findAll(); for (User user:users){ System.out.println("------用户信息--------"); System.out.println(user); System.out.println(user.getAccounts()); } }