如何使用Criteria查询关联的深层父项

问题描述 投票:0回答:1

在使用hibernate的Criteria运行查询时,为了能够按父项的属性进行搜索,我使用这种方法:

  List children = session.createCriteria(Child.class)
 .createAlias("parent", "parent")
 .add( Restrictions.eq("parent.name", "name") )
 .list();

但我想知道如何支持深度父母查询?我使用下面的方法,但它不起作用。

 List children = session.createCriteria(Child.class)
 .createAlias("parent", "parent")
 .createAlias("grandfather", "grandfather")
 .add( Restrictions.eq("parent.grandfather.name", "name") )
 .list();

如果我想通过parent.grandfater.name查询,想知道如何支持这种类型的查询?

hibernate hibernate-criteria
1个回答
0
投票

别名是JOIN,因此使用如下:

  List children = session.createCriteria(Child.class)
 .createAlias("parent", "parent")
 .createAlias("parent.grandfather", "grandfather")
 .add( Restrictions.eq("grandfather.name", "name") )
 .list();
© www.soinside.com 2019 - 2024. All rights reserved.