HQL链接查询

和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());            }        }    }
时间: 2024-11-14 01:28:22

HQL链接查询的相关文章

hql 链接查询

第一部分.连接查询 一.内连接 内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值.内连接分三种: 1.等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列. 2.不等连接: 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值.这些运算符包括>.>=.<=.<.!>.!<和<>. 3.自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用

hibernate学习系列-----(4)hibernate基本查询上篇:HQL基本查询

紧接着上一篇,今天继续hibernate的学习总结,来聊一聊hibernate的基本查询方法,先说说HQL(hibernate Query Language):它是官方推荐的查询语言.在开始写代码之前,看看需要做哪些准备工作吧,首先,在我们的学生类中新增一个属性"clazz",其实不加也可以,接着,我们需要重写Student.java类中的toString()方法,代码如下: /** * 重写toString方法 */ @Override public String toString(

写了一个Windows API Viewer,提供VBA语句的导出功能。提供两万多个API的MSDN链接查询

世面上的API Viewer已经不少了,但给VBA用的几乎没有.我自己写了一个Windows API Viewer,提供VBA语句的导出功能,并可以提供两万多个API的MSDN链接查询. 环境需求:Windows 7.1 SP1及以上操作系统,安装.Net 4.5.2及以上框架. 下载地址:API Viewer v1.1 下载

关于在SSH框架整合时,使用hql语句查询出现 XXX is not mapped 的问题

在做SSH框架的整合过程中,新手往往会遇到这个问题.当我们使用hql语句查询时,控制台报错: XXX is not mapped.而此时,很多觉得英语不错的同学就会被自己搞晕.然后开始检查实体类的映射文件*.hbm.xml是否正确,是否将映射文件添加到spring的配置文件中,等等.然后高亮一通,仍不见效. 我们开始正题.大家都知道,Hibernate是一个让我们完全面向对象编程的框架.也就是说,我们对数据库数据进行操作的时候,实际是通过实体类.在Hibernate中的查询方式有3种: (1)通

Cognos Report Studio 链接查询需要注意的地方2

在Report Studio里面用SQL设计报表,查询2,查询3 要链接一般按条件  a1=b1 在选择链接方式需要注意的地方: 默认链接 外部链接 需要设置打开FM,打开报表设计引用的数据包(FM-项目-编辑控制规则) 保存,重新发布模型包即可,(注意需要重新用RS打开报表刷新数据包后生效) Cognos Report Studio 链接查询需要注意的地方2

Hibernate批量处理数据、HQL连接查询

一.批量处理操作 批量处理数据是指在一个事务场景中处理大量数据.在应用程序中难以避免进行批量操作,Hibernate提供了以下方式进行批量处理数据: (1)使用HQL进行批量操作     数据库层面 (2)使用JDBC API进行批量操作  数据库层面 (3)使用Session进行批量操作   会进缓存 1.使用HQL进行批量操作 HQL可以查询数据,也可以批量插入.更新和删除数据.HQL批量操作实际上直接在数据库中完成,处理的数据不需要加载到Session缓存中.使用Query接口的execu

链接查询 变量

引用上一篇随笔的例子 一,链接查询 --查询人员表中的所有数据,并把bc换成文本,加上bceo; select code,name,sex,age,(select bname from bumen where bumen.bcode=renyuan.bc) as 部门,(select bceo from bumen where bumen.bcode=renyuan.bc) from renyuan --可以用链接查询(如下) select renyuan.code,name,sex,age,b

Hibernate SQLQuery简单实用,做链接查询

工单里面可能有0个告警,一个或多个告警,当工单中没有告警的时候也需要将工单显示出来,所以就需要使用工单和告警的做链接查询,下面是具体实例 表: CREATE TABLE `alarm` ( `id` bigint(20) NOT NULL DEFAULT '0', `title` varchar(20) DEFAULT NULL, `level` int(11) DEFAULT NULL, `customer_id` bigint(20) DEFAULT NULL, `work_sheet_id

字符串函数,数据类型转换,链接查询,纵向查询

字符串函数:(*=重点)        ascii:      是一种编码,将键盘上的键变成一个数字,比如回车键=13,但是只能把第一位改变        char :      将数字转换为ascii码***  charindex    查找字符串中对应字符段的开始索引,索引从一开始(12版内置函数) concat:     返回作为串联两个或者更多字符串值的结果的字符串       difference   比较soundex的相似度       soundex:    返回一个由四位字母转