2012-11-28 154 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