第十一章 Hibernate的查询 Hibernate可以使用的查询语言

        我们在之前讲Hibernate的核心API的时候,我们知道可以通过Session对象根据实体类及id可以获取到单个数据对象。那么我们如果想像JDBC的使用一样,想通过一些特定的条件来获取我们想要的数据我们应该怎么样做呢。这就是我们今天要学习的内容--Hibernate的查询。

        Session的查询相关的内容在第五章里面:http://blog.csdn.net/p_3er/article/details/8981465

Hibernate可以使用的查询语言如下几种:

  1. NativeSQL:本地语言(数据库自己的SQL语句)
  2. HQL:Hibernate自带的查询语句,可以使用HQL语言,转换成具体的方言(Hibernate官方推荐)
  3. EJBQL:JPQL1.0,可以认为是HQL的一个子节
  4. QBC:QueryBy
    Cretira
  5. QBE:QueryBy
    Example

注意:上面的功能是从1至5的比较,1的功能最大,5的功能最小

我们在后面会一一讲到。

时间: 2025-01-27 21:51:50

第十一章 Hibernate的查询 Hibernate可以使用的查询语言的相关文章

第十一章 Hibernate的查询 HQL面向对象的查询语言

HQL基本上与sql语句在语法上相仿,只是HQL具有面向对象的特性而已.(本文部分内容是从网络中获取而来) 1. 大小写敏感性问题          除了Java类与属性的名称外,查询语句对大小写并不敏感.所以SeLeCT与sELEct以及SELECT 是相同的,但是org.hibernate.eg.FOO并不等价于org.hibernate.eg.Foo并且foo.barSet也不等价于foo.BARSET.         本文中的HQL关键字将使用小写字母.很多用户发现使用完全大写的关键字

Hibernate属性查询简介

本文向大家介绍Hibernate属性查询,可能好多人还不了解Hibernate属性查询,没有关系,看完本文 你肯定有不少收获,希望本文能教会你更多东西. 今天说一下Hibernate属性查询:使用HQL的时候并不是把 hbm.xml 里面的所有属性取出来,只取出有 用的属性便可以了,举个例子: List list =session.createQuery ("select user.name,user.age from TUSER user").list(); Iterator it

spring-新手关于Spring管理Hibernate下查询性能的疑问

问题描述 新手关于Spring管理Hibernate下查询性能的疑问 我这么两段代码: 1.Query query = Dao.createQuery("from table"); list = query.list(); for(Table item : list){ Query query2 = Dao2.createQuery("select id from table2"); list = query2.list(); } 2.Query query = D

java-Java Hibernate中查询取值

问题描述 Java Hibernate中查询取值 Sql语法是这样的:![图片说明] 用Hibernate查询的语法不知道有没有问题呢? 还有最后一个问题: 我查询后的值存在query里面了, 我又要怎么取值呢? 求大家帮帮忙 解决方案 你那ID写里面就是死值了,要么用"?"代替,要么用 "+ +" 抱起来,哪有你那么写的 解决方案二: query.list()吧,然后看返回值是什么类型就用什么类型去接收就OK了.推荐看看这个先,里面有你想要的内容:http://z

hibernate hql查询问题

问题描述 hibernate hql查询问题 遇到个hibernate hql查询的问题,求高手解答 实体类A包含实体类T属性,实体类T有两个子类T1,T2,代码如下: A{ T t; } T{ } T1 extends T{ } T2 extends T{ } 现在我要查询A,条件是T为T2的类型,HQL语句应该怎么写? 解决方案 除了Java类与属性的名称外,查询语句对大小写并不敏感. 所以 SeLeCT 与 sELEct 以及 SELECT 是相同的,但是 org.hibernate.eg

hibernate模糊查询条件是中文 但是不能返回值

问题描述 小弟请教一下:我用的hibernate模糊查询页面的数据是utf-8,数据库也是模糊查询的条件是中文他就是返回为空但是是数字他又正确了我保证hql语句正确的用的是SSHspring我配置了characterEncoding=UTF-8请大家赐教 解决方案 解决方案二:你首先要看看不的数据库的中文是否是乱码,是的话那就不能查询出来,数字又正确,说明你的查询语句没错,仔细看下解决方案三:数据库不是乱码,数据是正确的查询语句如下:fromDepartmentdmwheredm.departm

hibernate 级联查询

hibernate级联查询 1,实体类结构 Java代码   @Entity   @Table(name = "t_vote")   public class Vote {       private int id;       /***       * 1:最宜居<br>       * 2:最优户<br>       * 3:最佳物业       */       private int type;       private HouseBuilding h

mysql 数据库-HIbernate映射查询出错,

问题描述 HIbernate映射查询出错, UserIm表继承User表,使用的是@Inheritance(strategy = InheritanceType.JOINED)策略,其中User对象中有Accout对象,User和Accout对象之间是有关联表 ORG_ACCOUNT_USER_CLIENT的,但是这个关联表里还有其他字段有外键关联,字段名为 CLIENT_ID,不知道hibernate是怎么弄的,查询的时候把这个 CLIENT_ID 也查询了,我没设置让他查询 CLIENT_I

json 返回hibernate load查询数据出错

问题描述 json 返回hibernate load查询数据出错 我用get()方法查询出来的数据print到页面不会有错!但是用load()方法查询出来的数据print到页面是就出现错误!如果在实体中设置lazy=""false""也不会出错!哪位高手给说明一下原因, 解决方案 懒加载呗........ 解决方案二: 那怎么解决,不会是每一个实体中都设置lazy=""false""吧 解决方案三: 看下load和get的区别