Hibernate DetachedCriteria 一对多查询

  1. DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Department. class )
  2. detachedCriteria.add(Restrictions.eq("name" "department" )).createAlias( "employees" "e" ).add(Restrictions.gt(( "e.age" ),  new  Integer( 20 )));    

Department和Employee是一对多关联,查询条件为:
名称是“department”开发部门;
部门里面的雇员年龄大于20岁;

 

以上内容来自:Hibernate一对多查询

 

但是如果你注意一下他生成的sql语句就会发现,其实他就是使用了普通的inner join的方式关联查询了两个表。

这回产生一个问题,就是:如果子表有两条数据关联主表的同一条数据的结果,那么查询结果会多出来一条。

那么hibernate应该是在内部进行了unique。

你可能感兴趣的:(sql,Hibernate)