Hibernate动态顺序
您好,我想在 HQL 中排序,
ORDER BY IF g.groupAdminId=:adminid THEN 1 ELSE 0 END ASC
但它不起作用,我想首先拥有用户为管理员的所有实体,我该如何归档?
Hi i want to sort in HQL
ORDER BY IF g.groupAdminId=:adminid THEN 1 ELSE 0 END ASC
But it doesn't work, i want to have all entities where the user is admin first, how can i archieve this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不认为可以将命名参数放在
where
子句之外。可以根据表达式进行排序:
有关 HQL 中的
case
的更多信息 docs :对于您的特定问题(管理员在其他用户之前),我建议进行两个查询并在 Java 中组合两个列表。
还有其他方法可以解决此问题,但我不喜欢其中任何一个:
I don't believe it is possible to put named parameters outside a
where
clause.It is possible to order according to expressions:
More on
case
in HQL docs :For your particular problem (having admins before other users) I suggest making two queries and combining the two lists in Java.
There are other ways around this but I do not like any of them: