0
Criteria criteria = sessionProvider.getCurrentSession().createCriteria(Foo.class);
criteria.createAlias("game", "game");
if (from != null) criteria.add(Restrictions.ge("game.created", from.toDate()));
if (to != null) criteria.add(Restrictions.lt("game.created", to.toDate()));
criteria.setProjection(Projections.distinct(Projections.property("game")));
criteria.addOrder(Order.desc(("game.created")));
criteria.setMaxResults(100);
games = criteria.list();
我使用上面的代碼來獲取遊戲。實體Foo有一個名爲的遊戲。我需要獲取遊戲引用,雖然Foo。但是當我運行上面的代碼時,出現以下錯誤。如何在投影和訂單中使用標準?
Caused by: org.postgresql.util.PSQLException: ERROR: for SELECT DISTINCT, ORDER BY expressions must appear in select list
Position: 246
如何正確添加投影和訂單?
但是遊戲是創建的列。 – dinesh707
您可以按「遊戲」列排序,它出現在結果列表中。 「已創建」列在結果列列表中不可用,並且您無法按此列進行排序。 – pasha701
Thankx。現在我明白了。問題是,當我選擇「獨特」時,它沒有獨特的創造價值。所以我認爲唯一的方式是手動查詢和排序 – dinesh707