博客
关于我
在hql中写sql 获值
阅读量:99 次
发布时间:2019-02-25

本文共 672 字,大约阅读时间需要 2 分钟。

序言:

一贯使用hibernate,就直接使用他的方法或者构造函数就行了,但是有些时候,使用的时候要注意一些方面:

如业务需要你对sql语句进行联查,排序和聚会处理。

问题:

使用一套固定的整合框架进行开发,框架的实现中,加入了分页的实现,因为有了分页的实现,所以在处理如聚会函数,联查表的时候,就会出现弊端。

使用hql 去执行sql ,得到的对象就是Object 的,调试会发现,呈现的样子是:["a","b","c","d"] . 那么如何去取得它们呐 ?

尝试方案:

1.在得到数据的时候进行强制转换;经过尝试,此法行不通,无法进行强转。即无法将Oject——> String| List | Array ,

2.取值来封装;经过尝试,依然失败,即无法将Oject 类型的对象取值封装成: String| List | Array ,

解决方案:

直接将结果返回给页面,在页面处理。

写sql 语句,在经过hibernate的hql处理之后,他会将你写的sql的字段用类似["a","b","c","d"] 的对象包装在Ojbect中,所以在页面获取的时候,可以使用

<s:property value="#list[0]"/> 来获取:list 表示list的对象实例,[0] 表示的是下标为0的字段的值。

如此一来,就可以将手动写的sql在hql执行完成之后,将对应的值显示在页面上了。

注意点:

一般这样的情况很少出现,因为hibernate已经有很好的封装,不需要这样来操作。如需要这样操作,即可以采用

如上述所使用方法来处理。

转载地址:http://oou.baihongyu.com/

你可能感兴趣的文章
Mysql5.7版本单机版my.cnf配置文件
查看>>
mysql5.7的安装和Navicat的安装
查看>>
mysql5.7示例数据库_Linux MySQL5.7多实例数据库配置
查看>>
MySQL8.0.29启动报错Different lower_case_table_names settings for server (‘0‘) and data dictionary (‘1‘)
查看>>
MySQL8修改密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
查看>>
MySQL8找不到my.ini配置文件以及报sql_mode=only_full_group_by解决方案
查看>>
mysql8的安装与卸载
查看>>
mysqlbinlog报错unknown variable ‘default-character-set=utf8mb4‘
查看>>
mysqldump 导出中文乱码
查看>>
mysqldump备份时忽略某些表
查看>>
mysqldump实现数据备份及灾难恢复
查看>>
mysqlreport分析工具详解
查看>>
MySQL一个表A中多个字段关联了表B的ID,如何关联查询?
查看>>
MYSQL一直显示正在启动
查看>>
MySQL一站到底!华为首发MySQL进阶宝典,基础+优化+源码+架构+实战五飞
查看>>
MySQL万字总结!超详细!
查看>>
Mysql下载以及安装(新手入门,超详细)
查看>>
MySQL中B+Tree索引原理
查看>>
mysql中cast() 和convert()的用法讲解
查看>>
mysql中floor函数的作用是什么?
查看>>