【发布时间】:2019-02-05 05:30:29
【问题描述】:
我正在使用带有条件 API 的 hibernate 4,我面临一个复杂的查询。
我的关系模型如下:
我要做的是为给定的人获取在指定日期之前属于“n”最后一个ShoppingEvent的所有已发货文章。
如何使用标准 API 实现这一点?
n.b. 我已经尝试过类似的方法:
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的最大数量。
【问题讨论】:
-
“我无法使用 setMaxResults”是什么意思?你有错误吗?或者你添加它并且它不适用并且返回超过你的 maxResults ?
-
感谢您的回复,我的意思是我得到了最后“n”篇文章,但不是最后“n”篇购物活动的所有文章