HQL 问题 帮忙解释一下

//查找用户拥有的角色,并按优先级从低到高排序

"select r.id from UsersRoles ur join ur.role r join ur.user u " +
"where u.id = ? order by ur.orderNo desc";

List roleIds = hibernateTemplate.find(hql,userId);

能解释 一下这个 Hql 语句吗

2个回答

你可以在hibernate.properties中配置show_sql=true来显示执行的sql语句
我猜测执行的语句应该如下:
select t2.id from UsersRoles t1
inner join role t2 on t1.role_id=t2.role_id
inner join user t3 on t1.user_id=t3.user_id and t3.user_id=?
order by t2.orderNo desc

//查找用户拥有的角色,并按优先级从低到高排序

"select r.id from UsersRoles ur join ur.role r join ur.user u " +
"where u.id = ? order by ur.orderNo desc";

List roleIds = hibernateTemplate.find(hql,userId);

能解释 一下这个 Hql 语句吗

两个表关联查询而已,?代表的就是你传入的userId值,hql就是上面那句查询sql。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问