1. 当取出user时想把级联的role也取出用:
from User u inner join fetch u.roles
2. 此时1可能会出现user重复,需加上group by:
from User u inner join fetch u.roles group by u.userId
3. 注意2可能会丢失一些数据,此时可以用distinct:
select distinct user from User u inner join fetch u.roles group by u.userId
4. 如果需要role过滤,需要给role加别名
from User u inner join fetch u.roles r
5. 去掉fetch,hibernate会返回两个对象user和role,而不是role在user中
6. 如果只取某些列,比如userName,则不能加fetch
select u.userName from User u inner join u.roles r;