1. 程式人生 > >hibernate 多表查詢

hibernate 多表查詢

這幾天碰到了一個hibernate的框架下,多表查詢的問題。這裡小總結一下
hibernate 多表查詢,目前有倆種解決方案
第一種使用 sql 查詢SQLQuery
dome:
String sql = “select a.1 as 1,a.2 as 2,a.3 as 3 ,b.1 as 4, b.2 as 5 from A a, B a”
SQLQuery sQLQuery = session.createSQLQuery(sb.toString());
sQLQuery .qlQuery.addScalar(“1”,Hibernate.String);
sqlQuery.setResultTransformer(Transformers.aliasToBean(Dome.class));
sqlQuery.list();
這個方案,dome不用寫對映檔案。
第二種方案使用 new 實體的方法
String sql = "select new Entiry(Entiry1.1,Entiry1.2,Entiry1.3,Entiry2.1,Entiry2.2) from Entiry1 ,Entiry2 "
Query query = session.createSQLQuery(sql.toString())
這個方案注意的是 實體Entiry 要有相應的 建構函式,Entiry1,Entiry2有相應的實體類的對映檔案。這個方案就是使用的hql 來進行查詢,弊端就是 hibernate 一些本身的缺點,不識別關鍵字on