使用Ebean使用SUM,MIN,MAX等进行ORDER BY

时间:2014-03-04 02:13:27

标签: java sql playframework playframework-2.2 ebean

我正在使用PlayFramework 2.2.2与Ebean和MsSql。

我正在寻找能够按MINMAX等排序的最简单或最干净的方法。

示例原始sql查询可能如下所示:

SELECT id, name, tickets FROM users WHERE tickets != NULL ORDER BY MAX(tickets)

我不知道这只是我,但ebean的文档令人难以置信。似乎每当有人提出一个9岁不能写的查询时,答案是“切换到RawSQL”。那么,为什么还要为Ebean烦恼呢?

无论如何,我真的希望看到一些由MIN / MAX等订购的CONCRETE Ebean示例。

2 个答案:

答案 0 :(得分:1)

你真的需要min,max ...的订单,因为选择列表中有id。

让我知道id是唯一的还是允许重复

建议使用以下查询,因为id是唯一的

select id,name,tickets from users  where tickets is not null order by ticket desc

答案 1 :(得分:1)

我遇到了同样的问题,然后我找到了以下信息。

  

设计目标:

     

此查询语言并非旨在替代SQL。它旨在成为描述您希望Ebean为您构建的“对象图”的简单方法。每个find / fetch表示“Object Graph”中的一个节点,这样可以很容易地为每个节点定义要获取的属性。

     

一旦达到了这种语言的极限,例如想要聚合函数(求和,平均值,最小值等)或递归查询等,就可以使用SQL。 Ebean的目标是尽可能简单地使用您自己的SQL来填充实体bean。请参阅RawSql。

- > http://www.avaje.org/static/javadoc/pub/com/avaje/ebean/Query.html