我有一个会话表。每个会话都有“session_start_time”和“session_end_time”。会议开放时,结束时间为空。我想获取会话列表,并按照以下逻辑进行排序:通过在JPQL /休眠中更改列排序
- 如果会话已打开(无结束时间),则按开始时间排序。
- 如果会话已关闭,则按结束时间排序。
喜欢的东西:
ORDER BY (session_end_time == null) ? session_start_time : session_end_time
我使用JPA和JPQL的查询,使用Hibernate的执行。你会推荐什么?
注意:我宁愿不将CASE添加到SELECT,而是保持它干净,所以我得到的会议列表没有额外的不需要的字段。
这有帮助,谢谢!合并确实有效,并且比使用CASE更快。我需要验证它是否也可以在JPQL中工作(到目前为止在SQL上测试过)。 – 2010-11-17 12:48:21
它在JPQL上完美地工作。谢谢! – 2010-11-18 13:39:02