Я использую hibernate 4 с API критериев, и у меня сложный запрос.
Моя реляционная модель выглядит следующим образом:
Я пытаюсь получить для данного лица все отправленные Статьи , которые относятся к «n» в последний раз ShoppingEvent
до указанной даты.
Как мне добиться этого с помощью API критериев?
нет. Я уже пробовал что-то вроде:
ProjectionList properties = Projections.projectionList();
properties.add(Projections.property("article.articleId"), "articleId");
properties.add(Projections.property("article.price"), "price");
properties.add(Projections.property("article.type"), "type");
return session.createCriteria(Person.class)//
.add(Restrictions.idEq(person.getPersonId()))//
.createAlias("articles", "article")//
.createAlias("article.shoppingEvent", "se")//
.add(Restrictions.le("se.date", currentDate))//
.addOrder(Order.desc("se.date"))//
.setProjection(properties)//
.setResultTransformer(Transformers.aliasToBean(Articles.class))//
.list();
Возвращает статьи, которые я хочу, но мне не удается использовать setMaxResults
для ограничения максимального числа ShoppingEvents
.