1.只显示地址,不显示内容:
结果显示
@Test public void searchUserRole(){ Listlist=userDao.searchUserRole(); for(User u:list){ System.out.println(u); System.out.println("\t\t"+u.getRoles()); } }
查看代码发现没有问题,难道是实体类的原因?
后来发现实体类少了重写ToString()方法:
@Override public String toString() { return "Role{" + "id=" + id + ", name='" + name + '\'' + ", desc='" + desc + '\'' + ", users=" + users + '}'; }
但是还是有问题,如下,名字重复:
原因在于user表和role表有字段名重复:
原来的sql语句:
SELECT u.*,r.* FROM user u left JOIN user_role ur on u.id=ur.uid left JOIN role r on ur.rid=r.id
使用别名之后:
SELECT u.*,r.id rid,r.name rname,r.desc FROM user u left JOIN user_role ur on u.id=ur.uid left JOIN role r on ur.rid=r.id
再看执行效果:
最终结果正常!