Быть в спящем режиме Критерии API, эквивалентный пункту выбора HQL?

Я хотел бы иметь объединенный запрос для двух персистентных классов.

В HQL это могло быть достигнуто избранным пунктом,

select new Family(mother, mate, offspr)
    from DomesticCat as mother
        join mother.mate as mate
        left join mother.kittens as offspr

В вышеупомянутом примере Семейство является conbined классом с DemesticCat как его construtor параметрические усилители

Что Критерии эквивалентно из пункта выбора HQL?

5
задан Pascal Thivent 10 May 2010 в 10:34
поделиться

2 ответа

Вам придется использовать ResultTransformer для этого. В статье Hibernate 3.2: Transformers for HQL and SQL блога приводится следующий пример (где StudentDTO - это non-entity 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);  
5
ответ дан 14 December 2019 в 13:29
поделиться

В API Criteria эта функциональность обрабатывается Projections. Документация немного запутана и переусложнена, но это то, на что вам нужно обратить внимание.

1
ответ дан 14 December 2019 в 13:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: