[英]Play Framework 1.2.4: Selected Option for #{select} template
[英]Why does my Play Framework (1.2.4) count query fail?
我有一個涉及標題和描述的簡單模型。 它擴展了play.db.jpa.Model
以下搜索方法可以完美運行
public static SearchResults search(String search, Integer page) {
String likeSearch = "%" + search + "%";
long count = find("title like ? OR description like ? order by " +
"title ASC", likeSearch, likeSearch).fetch().size();
List<Must> items = find("title like ? OR description like ? order by " +
"title ASC", likeSearch, likeSearch).fetch(page, 20);
return new SearchResults(items, count);
}
但是當我調整如下時
long count = count("title like ? OR description like ? order by " +
"title ASC", likeSearch, likeSearch);
我懂了
發生PersistenceException:org.hibernate.exception.SQLGrammarException:無法執行查詢
錯誤〜錯誤:“ must0_.title”列必須出現在GROUP BY子句中或在聚合函數中使用
當查詢完全沒有變化時,為什么錯誤要求我使用聚合函數?
這是因為在第一個查詢中,將返回所有記錄,然后將其計入結果列表。
在第二個查詢中,計數是在數據庫中完成的,因此您的sql必須正確形成。 我認為訂單是引起您所描述的錯誤的原因,請嘗試將其刪除。 您正在嘗試對不屬於退貨的列進行訂購(計算退貨數量而不是列)。
如果需要查看生成的sql,可以在application.conf中設置jpa.debugSQL = true 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.