2013-03-11 12 views
2

Следует ли использовать пейджинг с пользовательским запросом SQL ebean? Например, когда я создал этот вопрос:play framework ebean RawSql paging

String sql = 
      "SELECT q.event_id    AS event_id," 
     + "   MIN(q.total_price)  AS price_min, " 
     + "   MAX(q.total_price)  AS price_max " 
     + "FROM  quote q " 
     + "WHERE q.quote_status_id = 2 " 
     + " AND q.event_id IS NOT NULL " 
     + "GROUP BY q.event_id"; 

RawSql rawSql = RawSqlBuilder.unparsed(sql) 
     .columnMapping("event_id", "event.id") 
     .columnMapping("price_min", "priceMin") 
     .columnMapping("price_max", "priceMax") 
     .create(); 

com.avaje.ebean.Query<salesPipelineRow> ebeanQuery = Ebean.find(salesPipelineRow.class); 

ebeanQuery.setRawSql(rawSql); 

... Я могу назвать то ...

List<salesPipelineRow> list = ebeanQuery.findList(); 

... без каких-либо проблем (то есть я вернусь действительный список salesPipelineRow объекты). Тем не менее, когда я вместо того, чтобы попробовать что-то вроде ...

Page<salesPipelineRow> page = ebeanQuery.findPagingList(5).getPage(0); 

... Я получаю ошибку пустого, такие как:

java.util.concurrent.ExecutionException: javax.persistence.PersistenceException: 
Query threw SQLException:You have an error in your SQL syntax; check the manual that corresponds to your MySQL  
server version for the right syntax to use near 'null t0 
limit 6' at line 2 
Bind values:[] 

Query was: 
select t0.price_min c0, t0.price_max c1, t0.event_id c2 
from null t0 
limit 6 

Может кто-нибудь объяснить, почему FROM, WHERE и GROUP BY положений получают заменен на «null»?

Спасибо!

+0

У меня была такая же проблема ... вы нашли решение? – by0

ответ

0

Я предполагаю, что это должно было бы выполняться через списки рассылки EBean (если он все еще активен. Я думаю, что EBean совершенно мертв). Похож на меня. SQL, который должен быть оказаны бы:

select t0.price_min c0, t0.price_max c1, t0.event_id c2 
from (
    SELECT [... your raw SQL statement here ...] 
) t0 
limit 6