2016-08-19 2 views
0

를 사용하여 최대 절전 모드에서 두 개의 POJO 부모 클래스에 대한 별칭을 만드는 방법 : 당신이 얻을 수있는나 최대 절전 모드에 해당하는 기준 API가 필요 기준을 API

mysql> select c.name,t.teamname from club c,team t; 
+---------+----------+ 
| name | teamname | 
+---------+----------+ 
| Arsenal | Team A | 
| thiru | Team A | 
+---------+----------+ 
2 rows in set (0.00 sec) 

will it possible to have alias for two parent Pojo classes in CreateCriteria 
+0

는 클럽 팀에 대한 매핑을 작성했다. 그들은 몇 가지 외래 키 관계를 통해 관련이 있습니까 아니면 두 사이에 직교 제품을 수행하기를 원하십니까? –

+0

둘 다 POJO 클래스뿐만 아니라 테이블에서도 관계가 있습니다 – Thirukumaran

+0

'club' 또는'team'이 다른 엔티티를 참조하는 속성을 갖고 있다면이를 사용하여 별칭을 만들 수 있습니다. 매핑을 공유하면 답장하는 데 도움이됩니다. 또한, 제공 한 sql 쿼리는 Cartesian 제품을 수행합니다 (조인 조건이 없음). 실제로 Cartesian 제품을 수행 하시겠습니까? –

답변

0

은 이제 POJO 클래스

public class POJO { 
    private String name; 
    private String teamname; 

    public POJO() { } 

    ... 
} 

만들기 속성 메서드 나 필드를 통해 값을 주입하여 명시 적 생성자가 필요하지 않습니다. 내가 부모와 자식 같은 클럽으로 팀을 가정 이대로가 .... 팀과 클럽 사이의 관계에 대해 확실하지 않다으로

......

EG :

기준에

:

HQL에서
Criteria criteria = session.createCriteria(Team.class); 
    criteria.setProjection(Projections.projectionList() 
         .add(Projections.property("teamname"),"teamname")); 
         .add(Projections.property("club.name"),"name")); 
         criteria.setResultTransformer(Transformers.aliasToBean(POJO.class)); 

:

List resultWithAliasedBean = s.createQuery(
    "select c.name as name,t.teamname as teamname from club c,team t") 
    .setResultTransformer(Transformers.aliasToBean(POJO.class)) 
    .list(); 

POJO pojo = (POJO) resultWithAliasedBean.get(0);