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。
最佳答案
.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")
等等..