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

时间:2017-12-21 03:38:26

标签: hibernate hibernate-criteria

在使用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查询,想知道如何支持这种类型的查询?

1 个答案:

答案 0 :(得分:0)

别名是JOIN,请按以下方式使用:

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