关闭

在HQL select查询语句中自定义查询结果返回的数据类型

2394人阅读 评论(0) 收藏 举报
分类:

1.select子句用于选择制定的属性或者直接选择某个尸体,当然select选择的属性必须是from后持久化类包含的属性。例如:

select 0.name from Owner o


2.select可以选择任意属性,即不仅可以选择持久化类的直接属性,还可以选择组建属性包含的属性,例如:

select o.name.set from Owner o
    在通常情况下,使用Select子句查询的结果是集合,而集合元素就是select后的实例、属性等组成的object数组
    在特殊情况下,如果select后只有一项(包括持久化实力或属性),则查询得到的集合元素就是该持久化实例或属性

    如果select后有多个项,则每个集合元素就是选择出的多项组成的Object数组,例如如下HQL语句:  
  select o.id ,o from owner o
   执行该HQL语句得到的集合元素是类似于[INT,Owner]结构的Object数组,其中第一个元素是Owner 的id,第二个元素是Owner实例

3.select语句也支持将查询的结果存入一个固定结构的数据类型中

1>将查询结果存入List中
select new List<o.id,o.name> from Owner o
   执行上面的HQL语句后得到一个List<list<int ,String>>,(默认的集合元素是数组)
2>将查询结果存入Map中
select new Map<o.id,o.name>from Owner  o
   执行上面的HQL语句得到一个List<Map<int ,String>>
3>将查询结果存入一个对象中
select new DD<o.id,o.name> from Owner o 
   执行上面的HQL语句得到一个List<DD>
  注:A. 这种情况使用中经常会抛这样的异常:Unable to locate appropriate constructor on class。
       出现这个异常需要检查以下几种情况:
       1)参数构造器的参数类型是否正确
       2)参数构造器的顺序和hql中的顺序是否一致
       3)参数构造器的参数个数是否和hql中的个数一致
      4)参数构造器的参数类型是否TimeStamp
        对于DDTest类没映射到配置文件,通常要求将此hql语句写为:
                           select new 包名.DD<o.id,o.name> from Owner o
4>selset还支持给选中的表达式命名别名
select o.name as ownerName from Owner  o


 

 
   



0
1
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

hibernate 多表查询 查询结果映射到自定义类中

在hibernate开发中,经常会遇到多表查询,那么当查询出来得这个集合不与我们得任何一个类有关系,我们如何获取呢? 假设有两个bean,一个叫User,另一个叫Order User 字段:use...
  • ooiuy450
  • ooiuy450
  • 2017-02-23 23:47
  • 833

Hibernate查询,常用的指定返回类型方式

Hibernate支持HQL和SQL的查询,返回结果支持POJO类型或字段/数组的形式。 开发中用Hibernate进行数据库查询,用的是SQL。 原来需要查询一个表的几乎所有字段,所以我使用...
  • jackie_tsai
  • jackie_tsai
  • 2016-07-17 21:13
  • 1105

hibernate执行SQL返回自定义Bean对象

session.createSQLQuery.转载 对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery()获取这个接口。下面来描述如何使用...
  • wujie_cnhn123456
  • wujie_cnhn123456
  • 2015-03-25 10:36
  • 5031

hibernate 执行sql ,select 返回string long

1.执行sql,返回一个结果集,适用查询一个字段并返回一条记录 public Long findSeqTbTest() { String sql = "select SEQ_TB_TES...
  • arui_email
  • arui_email
  • 2012-07-12 19:58
  • 7564

hql查询返回list,map,自定义类型

以个普通Users表为例: 建表语句: CREATE DATABASE `interceptor` CHARACTER SET 'utf8'; USE `interceptor`; DR...
  • wuyongde0922
  • wuyongde0922
  • 2014-08-06 12:06
  • 1403

hibernate 实现多表连接查询 查询结果映射到自定义类中

Hibernate主要支持两种查询方式:HQL查询和Criteria查询。前者应用较为广发,后者也只是调用封装好的接口。 现在有一个问题,就是实现多表连接查询,且查询结果集不与任何一个实体类对应,怎...
  • u010293396
  • u010293396
  • 2014-05-11 19:24
  • 1358

mysql 实现时统计 hql

DATE_FORMAT(date,format)     根据format字符串格式化date值。下列修饰符可以被用在format字符串中:     %M     月名字(Ja...
  • god123209
  • god123209
  • 2011-12-12 15:56
  • 1415

Hibernate hql 查询指定字段并获取结果集

Hibernate hql 查询指定字段并获取结果集 在hibernate中,用hql语句查询实体类,采用list方法的返回结果为一个List,该List中封装的对象分为以下三种情况: 1.查...
  • zhbitxhd
  • zhbitxhd
  • 2013-05-21 21:16
  • 35599

HQL select 总结

1. 查询整个映射对象所有字段  Java代码   //直接from查询出来的是一个映射对象,即:查询整个映射对象所有字段           ...
  • a57565587
  • a57565587
  • 2016-07-14 15:00
  • 436

Hibernate查询对象所有字段,单个字段 ,几个字段取值的问题

在编程中需要利用hibernate查询出来的list,中某个字段的具体值,由于是查询多表得到的结果集,没有具体的泛型,在网上查得此文,特摘抄与大家分享,也方便后续查看 原文链接地址:http://w...
  • u012550080
  • u012550080
  • 2016-03-29 14:45
  • 9521