2017-06-19 36 views
0

当我使用hibernate查询两个表。休眠转换两个表结果与别名属性

SQLQuery query = session.createSQLQuery("select {a.*},{b.*} from a,b where 
a.id=b.id"); 
query.addEntity("a",A.class); 
query.addEntity("b",B.class); 
List list = query.list(); 

列表可转换成JSON,因为这

[ 
[{id:1,aa:"aa"},{id:1,"bb":"bb"}], 
[{id:2,aa:"aa2"},{id:2,"bb":"bb2"}] 

]

可以Hibernate查询列表得到结果如下图所示

[ 
    { 
    a:{id:1,aa:"aa"}, 
    b:{id:1,"bb":"bb"} 
}, 
    { 
    a:{id:2,aa:"aa2"}, 
    b:{id:2,"bb":"bb2"} 
    } 
] 

回答

0

你应该换结果集到一些复杂POJO和

public class ABListPojo{ 
    private List<ABPojo> abList; 
    // ...getters and setters 
} 

public class ABPojo{ 
    private A a; 
    private B b; 
    // ...getters and setters 
} 

,并添加setResultTransformer进入查询

query.setResultTransformer(Transformers.aliasToBean(ABListPojo.class))