2012-11-28 111 views
0

我想通過Hibernate從具有特定順序的數據庫中獲取對象。這個順序是這樣的事情:如何在Hibernate中使用子句

作爲第一個我想獲得與題目例如first_column NOT NULL列對象,

爲第二我想獲得的對象與second_column NOT NULL列,

作爲最後我想獲得的對象,其中third_column是另一個對象/表的ID,而這個另一個對象有一個具有具體值的字段,例如:"something"

這樣我已經創建標準:

criteria.addOrder(Order.asc("firstColumn")); 
criteria.addOrder(Order.asc("secondColumn")); 

,但我怎麼能滿足最後一個要求? 與限制,我可以做這樣的事情:

criteria.createAlias("thirdColumn", "t"); 
criteria.add(Restrictions.eq("t.field", "something")); 

但因爲我使用也setFirstResult()CriteriasetMaxResults()來實現我的前端分頁我不得不使用順序,而不是三個獨立Criteria結果限制, 。

回答

1

如果您可以在SQL中編寫語句,那麼您可能會忽略this post中提到的創建Order的自定義子類的方法。

+0

我不知道我不能在SQL中寫這個... – woyaru

+0

如果它不能用SQL編寫,那麼它不能寫在標準API中。我自己並不知道足夠的SQL來確定這是否可行。 – Pace