首页 > 其他 > 详细

HQL链接查询

时间:2017-02-08 23:07:48      阅读:291      评论:0      收藏:0      [点我收藏+]

和SQL查询一样,HQL也支持各种各样的连接查询,如内连接、外连接。我们知道在SQL中可通过join字句实现多表之间的连接查询。HQL同样提供了连接查询机制,还允许显示指定迫切内连接和迫切左外连接。HQL提供的连接方式如下表所示。

技术分享

//迫切内连接查询
@Test
public void test1() {
Query query = session.createQuery("select distinct s from Pro s inner join fetch s.emps");
List<Pro> list = query.list();
for (Pro item : list
) {
System.out.println(item.getProname());
for (Emp itme1 : item.getEmps()
) {
System.out.println(itme1.getEmpname());
}
}
}
//左外链接
@Test
public void test2() {
Query query = session.createQuery("select distinct s from Pro s left outer join s.emps");
List<Pro> list = query.list();
for (Pro item : list
) {
System.out.println(item.getProname());
for (Emp itme1 : item.getEmps()
) {
System.out.println(itme1.getEmpname());
}
}
}
//迫切左外链接
@Test
public void test3() {
Query query = session.createQuery("select distinct s from Pro s left outer join fetch s.emps");
List<Pro> list = query.list();
for (Pro item : list
) {
System.out.println(item.getProname());
for (Emp itme1 : item.getEmps()
) {
System.out.println(itme1.getEmpname());
}
}
}
//右链接
@Test
public void test4() {
Query query = session.createQuery("select distinct s from Pro s right join s.emps");
List<Pro> list = query.list();
for (Pro item : list
) {
System.out.println(item.getProname());
for (Emp itme1 : item.getEmps()
) {
System.out.println(itme1.getEmpname());
}
}
}

HQL链接查询

原文:http://www.cnblogs.com/wyd12138/p/6380100.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!