1
riteria crit = sessionFactory.getCurrentSession()
                .createCriteria(Order.class)
                .setProjection(Projections.distinct(
                    Projections.projectionList()
                    .add(Projections.property("this.id"))
                    .add(Projections.property("this.creationDate"))
                    .add(Projections.property("this.effectiveDate"))
                    .add(Projections.property("this.modificationDate"))))
                .createAlias("this.consultation", "c")
                .createAlias("c.institution", "institution")

我正在尝试使用 order.consultation.institution。可能吗?为达到这个...

crit.addOrder(org.hibernate.criterion.Order.desc("institution"));

如果我想要其他子类,我想访问(多级)。例如,如果我有类似对象 A 包含对象 B 包含对象 C 等的东西。所以,A->B->C。

4

1 回答 1

0
.createAlias("this.consultation", "c")
.setProjection(Projections.distinct(
Projections.projectionList()
.add(Projections.property("this.id"))
.add(Projections.property("this.creationDate"))
.add(Projections.property("c.institution"))

...

crit.addOrder(org.hibernate.criterion.Order.desc("c.institution"));

对于第二个问题,您可以通过这样做来访问您的子类及其方法(例如 A->B->C)

.createAlias("this.a", "a")
.createAlias("a.b", "b")
.createAlias("b.c", "c")

等等..

于 2013-08-06T20:23:04.963 回答