0

我想通过 Hibernate 从具有具体顺序的数据库中获取对象。这个订单是这样的:

作为第一个我想获取标题为例如first_column不为空的列的对象,

作为第二个我想获取列second_column不为空的对象,

作为最后一个我想获取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"));

但是我必须使用顺序,而不是限制三个单独的Criteria结果,因为我也在使用setFirstResult()and setMaxResults()ofCriteria在我的前端实现分页。

4

2 回答 2

1

如果您可以用 SQL 编写语句,那么您可能可以摆脱本文中提到的方法即创建 Order 的自定义子类。

于 2012-11-28T13:21:50.247 回答
1

我认为您可以简单地使用“。” 分隔符并编写代码如下

criteria.createAlias("thirdColumn", "t");
criteria.addOrder(Order.asc("t.field"));
于 2019-11-06T17:14:52.410 回答