如何使用 Criteria 查询关联的深度 parents

How to query associated deep parents using Criteria

在使用休眠条件 运行 查询时,为了能够按 parent 的属性进行搜索,我使用了这种方法:

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

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

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

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

别名是一个JOIN,所以使用如下:

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