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

猜你喜欢

转载自blog.csdn.net/u014003615/article/details/83578628