Что мне нужно, это добавить «разбиение на страницы» в списке классов. 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, но только два первых объекта внутри списка адресов.
Что именно вы имеете в виду под «результатами поиска работы, а не для разбивки на страницы»? –
Я имею в виду, что вместо того, чтобы устанавливать значения SetFirstResult и т. Д., Я устанавливаю ограничение, подобное этому. .add (Restrictions.eq («B», новый B («somthing»))). Он работает и выполняет фильтрацию точно тот же код. – aivaldi
Если вы используете целеустремленный выбор, вам следует попробовать отключить его, так как это может вызвать странные результаты с поисковым вызовом. Кроме того, когда я знаю, что могут быть проблемы с нетерпением, я предпочитаю использовать критерииParcial.SetResultTransformer (NHibernate.Transform.Transformers.DistinctRootEntity) .List() вместо простого списка() – jbl