hibernate query.list() 返回的数据类型

在hibernate中,用hql语句查询实体类,采用list方法的返回结果为一个List,该List中封装的对象分为以下三种情况:

1.查询全部字段的情况下,如"from 实体类",list中封装的对象为实体类本身,各属性都将得到填充。

String hql = " from Commodity ";
        Query query = session.createQuery(hql);
        List<Commodity> commodities = query.list();

        for(Commodity c : commodities){
            System.out.println("name:"+c.getName());

            System.out.println("seller‘s name :"+c.getSeller().getName());

2.只查询一个字段,默认情况下,list中封装的是Object对象。

String hql = " select s.name from Seller s ";

        Query query = session.createQuery(hql);

        List<Object> list = query.list();

        for(Object obj : list){
            System.out.println("name:"+obj);
        }

3.查询两个或两个以上的字段,默认情况下,list中封装的是Object[],长度与所查询的字段数一致。

String hql = " select c.name,c.tel,c.age from Customer c ";
        Query query = session.createQuery(hql);
        List<Object[]> list = query.list();
        for(Object[] objs : list){
            System.out.println("name:"+objs[0]);
            System.out.println("tel:"+objs[1]);
            System.out.println("age:"+objs[2]);
        }

对于后两种情况,用标签遍历时不太方便,因为无法直接转换成实体类的对象。

比较简单的解决方法是:在hql中使用 select new 包名.类名(属性1,属性2……) from 实体类,

同时在实体类中添加带参的构造方法,参数的个数和顺序与(属性1,属性2……) 保持一致,

这样我们得到的list中存放的依然是实体类的对象,所查询到的属性得到了填充,使用起来更为方便。

时间: 2024-10-18 04:12:32

hibernate query.list() 返回的数据类型的相关文章

Spring data jpa中Query和@Query分别返回map结果集

引用: http://blog.csdn.net/yingxiake/article/details/51016234 http://blog.csdn.net/yingxiake/article/details/51016234 http://www.cnblogs.com/zj0208/p/6008627.html Query的使用: 在JPA 2.0 中我们可以使用entityManager.createNativeQuery()来执行原生的SQL语句. 但当我们查询结果没有对应实体类时,

hql(Hibernate Query Language)

1.Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Language)查询提供了更加丰富的和灵活的查询特性,因此Hibernate将HQL查询方式立为官方推荐的标准查询方式,HQL查询在涵盖Criteria查询的所有功能的前提下,提供了类似标准SQL语句的查询方式,同时也提供了更加面向对象的封装.完整的HQL语句形式如下: Select/update/delete-- from -- where -- group by --

Hibernate Query Language查询:

Hibernate Query Language查询: Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Language)查询提供了更加丰富的和灵活的查询特性,因此Hibernate将HQL查询方式立为官方推荐的标准查询方式,HQL查询在涵盖Criteria查询的所有功能的前提下,提供了类似标准SQL语句的查询方式,同时也提供了更加面向对象的封装.完整的HQL语句形势如下: Select/update/delete-- fro

HQL(Hibernate Query Language)

1. NativeSQL > HQL > EJB QL(JP QL 1.0) > QBC(Query By Criteria) > QBE(Query By Example)2. 总结:QL应该和导航关系结合,共同为查询提供服务. 以下图为例: Category: 1 package com.bjsxt.hibernate; 2 3 import javax.persistence.Entity; 4 import javax.persistence.GeneratedValue;

HQL: The Hibernate Query Language

Chapter 14. HQL: The Hibernate Query Language 14.1. Case Sensitivity 14.2. The from clause 14.3. Associations and joins 14.4. Forms of join syntax 14.5. Referring to identifier property 14.6. The select clause 14.7. Aggregate functions 14.8. Polymorp

jQuery:length属性:是jQuery对象对应元素在document中的个数,返回值数据类型是Number

是jQuery对象对应元素在document中的个数,返回值数据类型是Number

struts2返回json数据类型

项目需要jar包 项目结构 web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocati

常用HQL(Hibernate Query Language)查询

查询一个对象(实体类必须有一个不带参数的构造方法) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 @Test public void test01() {     Session session = null;     try {         session = HibernateUtil.openSession();         /**          * 对于HQL而言,都是基于对象进行查询的          */        

javascript的typeof返回哪些数据类型

1.返回数据类型 undefined string boolean number symbol(ES6) Object Function 2.强制类型转换 Number(参数)把任何类型转换成数值类型 parseInt(参数1,参数2)将字符串转换成整数 parseFloat()将字符串转换成浮点数字 string(参数):可以将任何类型转换成字符串 Boolean()可以将任何类型的值转换成布尔值 3.隐式类型转换 (1).四则运算 加法运算符+是双目运算符,只要其中一个是string类型,表