hql关联查询语句怎么写

1.hibernate如何做关联查询呢

很多人认为hibernate一旦涉及到多张表查询就很不方便,只能通过原生sql解决,其实不然,hql语句其实已经比较强大了,基本涵盖了sql的60%的功能。我认为用原生sql的场景应该为以下几点情况:

1. 非常复杂sql(嵌套、临时表、混合语句【update包含select嵌套】)

2. 某数据库(如oracle)特性函数

3. 特殊业务sql,即查询出的结果是某种特殊业务含义,并不是po实体类里的字段。例如:select col_1 as business1, col_2 as business2 from table;(business1并不是table的字段)

除以上特殊需求外,我建议能用hq就用hql,hql最大的优点,除了能自动映射成po实体类,另一个就是跨数据库的通用性,采用hql语句可以轻松将数据库由mysql改为oracle。

hql的基础我就不再叙述了,今天我为大家主要介绍多表之间的关联查询。

1. po之间含有关联关系

public class Student {

private Clazz clazz;

get()。

set()。

}

from Student t inner join t.clazz r where t.sex = '男' and r.name = '三班'

这个语句默认情况下,是懒加载的,如果想一并抓取,则语句为:

from Student t inner join fetch t.clazz r where t.sex = '男' and r.name = '三班'

hql同样支持left join和right join等关联查询

2. po之间没有关联关系

public class Student {

private String clazzId;

get()。

set()。

}

select t from Studnent t, Clazz r where t.clazzId = r.id and t.sex = '男' and r.name = '三班'

3. 查询部分字段

另外有时我们只需要查询po对象里的部分字段,那么怎么查呢?

select new Student(name, sex) from Student

但需要注意的是,Student实体类中必须要有参数为name,sex的构造函数。

4. 统计函数

支持count()、min()、max()、sum()、avg()等

select avg(s.age) from Student as s

5. 去除重复行

select distinct s.age from Student as s

6. 综合用法

举一个典型的例子:分页。用hibernate分页,现在大多数人还是采用两步去做,第一步统计行数,第二步分页查询(目的是计算出总页数),如果想一步完成,多数人还是用sql了,其实hql也能做到。

select new Student(t.name, t.sex, count(t)) from Sudent t

在Student实体类中只要有参数为name, sex, rowCount的构造函数即可,rowCount也可以不是数据库里的字段

通过以上可以看出,某一技术我们有时觉得不方便,只是我们还不够了解它,需要我们更多的仔细去探索和挖掘。

2.怎么用HQL语句写级联查询啊

FROM Channel c,Module m,ChannelModule cm

where c.channelId=cm.channelId and m.moduleId=cm.moduleId and c.channelId=:id

看能不能运行,我不有把握。而且Hibernate查出来了也没办法用对象来装东西,因为是三个对象里面的东西。

如果你上面的程序可以运行的话,哪可以用上面的sql来吧。

Hibernate也可以直接用sql来做的。

String sql = "select * from channel c,module m,channel_module cm

where c.channel_id=cm.channel_id and m.module_id=cm.module_id and c.channel_id="+id;

Query query = getSession().createSQLQuery(sql);

return query.list();

出来的结果是对象数组。

//Collectionmodules=null;

你这个定义就不对,因为你查询的都是module表的内容吗?不是吧

3.hibernate的关联查询怎么实现

hibernate的关联查询实现方法,比如有存在关联的表A和表B字段分别如下:

A:id,aName,aDesc

B:id,aId,bName,bDesc

希望查询的结果是:A.id,B.id,A.aName,B.bName,B.bDesc

1.按照如下步骤操作:

①创建A和B的hibernate映射,相互不用关联,对应持久化类为APojo和BPojo

②创建结果集的载体CPojo,CPojo只是简单的一个JavaBean不是持久化类,它的属性与查询结果相对应:

public class CPojo {

public long aId;

public long bId;

public String aName;

public String bName;

public String bDesc;

public CPojo(long aId, long bId, String aName, String bName, String bDesc) {

this.aId = aId;

this.bId = bId;

this.aName = aName;

this.bName = bName;

this.bDesc = bDesc;

}

}2.HQL关联查询语句写法:

Select new com.XXX.CPojo(a.id,b.id,a.aName,b.bName,b.bDesc) from A a,B b where a.id = b.aId优点:不需要建立复杂的持久化类,也不需要建立视图。结果集可以自由定制。

4.hibernate如何做关联查询呢

很多人认为hibernate一旦涉及到多张表查询就很不方便,只能通过原生sql解决,其实不然,hql语句其实已经比较强大了,基本涵盖了sql的60%的功能。

我认为用原生sql的场景应该为以下几点情况:1. 非常复杂sql(嵌套、临时表、混合语句【update包含select嵌套】)2. 某数据库(如oracle)特性函数3. 特殊业务sql,即查询出的结果是某种特殊业务含义,并不是po实体类里的字段。例如:select col_1 as business1, col_2 as business2 from table;(business1并不是table的字段)除以上特殊需求外,我建议能用hq就用hql,hql最大的优点,除了能自动映射成po实体类,另一个就是跨数据库的通用性,采用hql语句可以轻松将数据库由mysql改为oracle。

hql的基础我就不再叙述了,今天我为大家主要介绍多表之间的关联查询。1. po之间含有关联关系public class Student { 。

private Clazz clazz; get()。 set()。

} from Student t inner join t.clazz r where t.sex = '男' and r.name = '三班'这个语句默认情况下,是懒加载的,如果想一并抓取,则语句为:from Student t inner join fetch t.clazz r where t.sex = '男' and r.name = '三班'hql同样支持left join和right join等关联查询2. po之间没有关联关系public class Student { 。 private String clazzId; get()。

set()。 } select t from Studnent t, Clazz r where t.clazzId = r.id and t.sex = '男' and r.name = '三班'3. 查询部分字段另外有时我们只需要查询po对象里的部分字段,那么怎么查呢?select new Student(name, sex) from Student但需要注意的是,Student实体类中必须要有参数为name,sex的构造函数。

4. 统计函数支持count()、min()、max()、sum()、avg()等select avg(s.age) from Student as s5. 去除重复行select distinct s.age from Student as s6. 综合用法举一个典型的例子:分页。用hibernate分页,现在大多数人还是采用两步去做,第一步统计行数,第二步分页查询(目的是计算出总页数),如果想一步完成,多数人还是用sql了,其实hql也能做到。

select new Student(t.name, t.sex, count(t)) from Sudent t在Student实体类中只要有参数为name, sex, rowCount的构造函数即可,rowCount也可以不是数据库里的字段通过以上可以看出,某一技术我们有时觉得不方便,只是我们还不够了解它,需要我们更多的仔细去探索和挖掘。

5.java框架hibernate如何用hql语句查询多对多关联关系

Query query = session.createQuery(“select s.students from Teacher s where s.name= 'xxx' ”);

List list = query.list();

for (int i=0;i<list.size(); i++)

{

Student stu = (Student)list.get(i);

System.out.println(stu.getName());

}

6.怎么用HQL语句写级联查询啊

FROM Channel c,Module m,ChannelModule cmwhere c.channelId=cm.channelId and m.moduleId=cm.moduleId and c.channelId=:id 看能不能运行,我不有把握。

而且Hibernate查出来了也没办法用对象来装东西,因为是三个对象里面的东西。如果你上面的程序可以运行的话,哪可以用上面的sql来吧。

Hibernate也可以直接用sql来做的。String sql = "select * from channel c,module m,channel_module cmwhere c.channel_id=cm.channel_id and m.module_id=cm.module_id and c.channel_id="+id;Query query = getSession().createSQLQuery(sql);return query.list();出来的结果是对象数组。

//Collection modules=null;你这个定义就不对,因为你查询的都是module表的内容吗?不是吧。

hql关联查询语句怎么写

转载请注明出处育才学习网 » hql关联查询语句怎么写

知识

在同一天的英文怎么写

阅读(223)

本文主要为您介绍在同一天的英文怎么写,内容包括在同一天用英语怎么说,在同一天的英语表达,在同一天用英语怎么说。在早晨:in the morning、on the morning of词汇解析:in the morning英文发音:[ɪn ðə ˈ

知识

军事地理坐标怎么写

阅读(572)

本文主要为您介绍军事地理坐标怎么写,内容包括军用坐标怎么讲,地理坐标怎么写,军事地形学怎么量取地理精确坐标。确定平面上或空间中某点的位置的有次序的一组数值,称为该点的坐标。利用坐标,能迅速准确地确定点位。。我国地形图上的坐标系是

知识

粉笔说明书怎么写

阅读(312)

本文主要为您介绍粉笔说明书怎么写,内容包括商品粉笔说明书例文,写一篇写粉笔的说明文,写一篇写粉笔的说明文。商品说明书写作方法(1)商品说明书的概念商品说明书是一种以说明为主要表达方式,概括介绍商品用途、性能、特征、使用和保管方法

知识

打雪仗的打怎么写

阅读(189)

本文主要为您介绍打雪仗的打怎么写,内容包括打雪仗的仗字怎么写,打雪仗怎么写,怎么写打雪仗的作文。打雪仗的仗字怎么写

知识

申诉书是怎么写啊

阅读(240)

本文主要为您介绍申诉书是怎么写啊,内容包括申诉书怎样写,申诉书格式,申诉状怎么写。2008-12-29 10:39 申 诉 书 (各类案件通用) 申诉人 对 人民法院 年 月 日( ) 字第 号 ,提出申诉。 请 求

知识

商贸公司愿景怎么写

阅读(542)

本文主要为您介绍商贸公司愿景怎么写,内容包括公司愿景怎么写,如何帮贸易公司写公司使命和愿景,企业愿景怎么写。一般来讲,企业的愿景通常包含四个方面的内容:使整个人类社会受惠受益。例如,有些企业的愿景就表达出企业的存在就是要为社会创造

知识

摩托车商家简介怎么写

阅读(243)

本文主要为您介绍摩托车商家简介怎么写,内容包括车行简介怎么写,摩托车简介,商家介绍怎么写。运动摩托车简介运动摩托车又叫跑车。其设计主导思想是供人们消闲休假使用的,是一种趣味性的交通工具,也是体验人生乐趣的游乐工具。运动摩托车包

知识

jsp项目名怎么写

阅读(224)

本文主要为您介绍jsp项目名怎么写,内容包括JSP项目需求文档该怎么写,关于jsp项目名称被改无法使用新项目名,怎么改Myeclipse的项目名或者jsp的名字后老出现404报错。<% String customer_id=request.getParameter("customer_id")==null?"":r

知识

php中怎么写js

阅读(238)

本文主要为您介绍php中怎么写js,内容包括js中如何写php语句,php代码中插入js代码要怎么写,php页面如何添加Js。把JS代码写在<?PHP ?&gt;的外面,例如下面的语句:<?echo<script language="JavaScript" ty

知识

分析电影的格式怎么写

阅读(811)

本文主要为您介绍分析电影的格式怎么写,内容包括写影评的格式,电影影片分析怎么写,影片分析该怎么写啊。【影评格式】题目:题目是任何写作中的第一闪光点,影评也不例外。一个好的影评题目,关键在于他能否用于传递作者想要在影评中表达的信息。

知识

韩文爸爸妈妈怎么写

阅读(221)

本文主要为您介绍韩文爸爸妈妈怎么写,内容包括韩语爸爸妈妈怎么说,爸爸妈妈用韩文怎样写,爸爸妈妈的韩语怎么读。爸爸的读音:(1)a ba ,对应的韩语是아빠,用于小孩称呼爸爸时用;(2)a be ji,对应的韩语是아버지,用于成人称呼爸爸时用;妈

知识

挥动英文怎么写

阅读(222)

本文主要为您介绍挥动英文怎么写,内容包括挥动的英语单词,粘贴用英文怎么写,wave用英语怎么读。“粘贴”用英文:stick 读音:英 [stɪk] 美 [stɪk] 释义:vt. 刺,戳;伸出;粘贴2、vi. 坚持;伸出;粘住3、n

知识

左室大胸片报告怎么写

阅读(352)

本文主要为您介绍左室大胸片报告怎么写,内容包括心室肥大的X线片报告怎么写,胸片上如何从心影外形诊断左心室增大,是什么意思,胸片正侧位的报告写胸片正侧位的报告写:两侧胸廓对。因人而异,一般心影呈~XX~型,主动脉弓情况?肺动脉段情况?左心室段

知识

lua打开网页怎么写

阅读(237)

本文主要为您介绍lua打开网页怎么写,内容包括如何用LUA实现打开指定网址的网页,怎么用Lua写出来新手,用lua的io.open打开文件,文件路径怎么写。require( "luacurl" )c = curl.new() -- curl.new not found-- Set the p

知识

sql数据库更新数据语句怎么写

阅读(253)

本文主要为您介绍sql数据库更新数据语句怎么写,内容包括SQL的update语句怎么写,SQL里面的UPDATE更新语句数据怎么写,更新数据库的一条sql语句怎么写。UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值,update语句的写法:UPDATE table_na

知识

plsql怎么写sql语句

阅读(392)

本文主要为您介绍plsql怎么写sql语句,内容包括plsqldeveloper7怎么写sql语句,plsqldeveloper怎么输入sql语句,进入PLSQL的命令窗口,输入SQL语句后,应该如何执行。首先打开PL/SQL Developer,登录进来。下图是PL/SQL Developer登录后的界面。

知识

在表中添加一条记录sql语句怎么写

阅读(1554)

本文主要为您介绍在表中添加一条记录sql语句怎么写,内容包括在数据表中添加一个字段的SQL语句怎么写,在数据表后面增加一条记录,SQL语句怎么写,sql语句怎么添加一条记录。数据表中添加一个字段的标准SQL语句写法为:alter table 表名 add (字

知识

vba查询代码怎么写

阅读(267)

本文主要为您介绍vba查询代码怎么写,内容包括EXCELVBA中关于查询代码如何编写,VBA要写一个在数据库查询的代码,要如何修改才是正确的写法搜狗,ExcelExcel2007版用VBA实现多条件查询并显示代码怎么写。问题太笼统,给你个例子看吧Public Sub d

知识

带参数的sql语句怎么写

阅读(305)

本文主要为您介绍带参数的sql语句怎么写,内容包括带参数的SQL插入语句怎么写,带有参数的select的sql语句怎么写,Oracle存储过程中带参数的sql语句怎么写。string sql="insert into 表名 values ("参数1","参数2","参数3")";sqlParamters[

知识

c语言循环语句怎么写

阅读(227)

本文主要为您介绍c语言循环语句怎么写,内容包括C语言循环语句用法,C语言中的循环语句怎么写啊,C语言中循环语句循环语句怎么写怎么设定。原发布者:西伯利亚小774三种基本的循环语句:for语句、while语句和do-while语句。循环语句(一)、for循环它

知识

jsfor循环语句怎么写

阅读(243)

本文主要为您介绍jsfor循环语句怎么写,内容包括jsfor循环语句写法,javascriptfor循环语句,jsfor循环语句写法。<script><br>//兔子问题是 斐波那契数列<br>function fac(num){<br>return (num==1||

知识

家具广告语句怎么写

阅读(225)

本文主要为您介绍家具广告语句怎么写,内容包括家具广告词怎么写,家居广告语如何写,卖家具搞活动的广告词怎么写才吸引人。我与众多的消费者一样,对铺天盖地的广告早就开始麻木了,尤其是看到了家具 业内曝出的一批又一批的不合格产品名单,更是

[/e:loop]