Hibernate Criteria Pagination

时间:2012-06-28 20:57:20

标签: .net nhibernate pagination nhibernate-criteria

我需要的是在一个类的列表中添加“分页”。 EJ:

Class A
  List B

所以我需要将B列表限制为特定值

我正在做的是(使用标准,它都是动态的):

ICriteria criteria = Session.createCriteria();

ICriteria criteriaParcial = criteria.CreateCriteria("B");

criteriaParcial.SetFirstResult(0).SetMaxResults(10);

criteria.list();

这是一个例子,真正的代码是动态的和迭代的。

此机制可以查找过滤值,但不能查找分页。

任何想法? 罐

已更新!

这种方法不起作用因为这个方法执行criteria.CreateCriteria("B").setMAxResults(10)按照我的想法修改为根标准而不是subCriteria。

所以现在我的猜测是。可以限制或分页一个类中的列表吗?

这样的东西:我有一个带有地址列表的Person,所以我想加载一个Person,但只加载地址列表中的两个第一个对象。

1 个答案:

答案 0 :(得分:0)

AFAIK不可能。但无论如何,这种方法都是错误的。最好加载根实体数据,并在另一个查询中加载子列表,这样就可以根据需要对过滤器进行分页和排序。

列表属性不是为了显示好,它们只是包含一个对象列表以及它们的作用。这就是为什么创建另一个只返回那些项的查询是最好的方法。

您可以使用Future<>查询以提高数据库性能。