Hibernate属性查询简介

本文向大家介绍Hibernate属性查询,可能好多人还不了解Hibernate属性查询,没有关系,看完本文 你肯定有不少收获,希望本文能教会你更多东西。

今天说一下Hibernate属性查询:使用HQL的时候并不是把 hbm.xml 里面的所有属性取出来,只取出有 用的属性便可以了,举个例子:

List list =session.createQuery
("select user.name,user.age from TUSER user").list();
Iterator it = list.iterator();
while(it.hasNext())
...{
Object[] results = (Object[])it.next();
System.out.println(results[0]);
System.out.println(results[1]);
}

如果觉得返回数组的方式不够符合面向对象的风格,也可以使用构造对象实例的方法对数组进行封装 :

List list = this.session.createQuery
(" select new TUser(user.name,user.age) from TUser as user").list();
Iterator if = list.iterator();
while(it.hasNext())
...{
TUser user = (TUser)it.next();
System.out.println(user.getName());
}

着爱与那个就比较形象化一些,但是有一点要注意的是这个查询结果的TUser对象仅仅是一普通的 java 对象,进用于对查询结果的封装,除了在构造是赋予的属性值外,其他属性均为未赋值状态,这就 意味着,我们无法通过 Session 对此对象进行更新,如果企图对 user 对象更新将导致向数据库插入一 条新的记录,而不是更新原有记录:

while(it.hasNext())
...{
  TUser user = (TUser)it.next();
user.setName("test");
session.saveOrUpdate(user);
//这里将导致一次 insert 操作,而非 update
}

也可以使用像 SQL 那样的统计函数,比如:

selet count(*),min(user.age) from TUser as user
select upper(user.name) from TUser as user
select distinct user.name from TUser as user

以上介绍Hibernate属性查询。

时间: 2024-11-30 12:19:41

Hibernate属性查询简介的相关文章

Hibernate HQL查询简介

传统的SQL语言采用的是结构化的查询方法,而这种方法对于查询以对象形式存在的数据却无能为力.幸运的是,Hibernate为我们提供了一种语法类似于SQL的语言,Hibernate查询语言(HQL),和SQL不同的是,HQL是一种面向对象的查询语言,它可以查询以对象形式存在的数据.因此,本文就HQL如何工作以及如何使用HQL展开了深入的讨论. SQL本身是非常强大的.当SQL的这种强大和处理面向对象数据的能力相结合时,就产生了HQL.和SQL一样,HQL提供了丰富的查询功能,如投影查询.聚合函数.

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

Hibernate 分页 查询

 昨天的作业  分页: 主要的代码块:(明天实现分页的封装) 1 package com.cy.beans; 2 3 import java.util.List; 4 5 /** 6 * 定义一个分页对象 7 * @author acer 8 * 9 */ 10 public class Pager { 11 12 private int page;//当前页码 13 private int pageTotal;//总页码 14 private int rowsTotal;//总条数 15 pr

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模糊查询条件是中文 但是不能返回值

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

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的区别