Hibernate Criteria API相当于HQL select子句?

Vis*_*hao 5 java orm hibernate hql criteria

我想对两个持久化类进行组合查询.

在HQL中,这可以通过select子句来实现,

select new Family(mother, mate, offspr)
    from DomesticCat as mother
        join mother.mate as mate
        left join mother.kittens as offspr
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,Family是一个以DemesticCat作为其construtor params的联合类

什么是HQL select子句的Criteria等价物?

Pas*_*ent 5

你必须使用ResultTransformer这个.在Hibernate的3.2:变压器为HQL和SQL的博客文章给出了下面的例子(其中StudentDTO是一个非实体bean):

List resultWithAliasedBean = s.createCriteria(Enrolment.class)
  .createAlias("student", "st").createAlias("course", "co")
  .setProjection( Projections.projectionList()
                   .add( Projections.property("st.name"), "studentName" )
                   .add( Projections.property("co.description"), "courseDescription" )
          )
          .setResultTransformer( Transformers.aliasToBean(StudentDTO.class) )
          .list();

 StudentDTO dto = (StudentDTO)resultWithAliasedBean.get(0);  
Run Code Online (Sandbox Code Playgroud)