HQL语句的3个小技巧
1.巧用new map
String hql = "select new map(r.id as id,r.name as name ,r.remark as remark) from Role r";
String hql = "select new map(r.id as id,r.name as name ,r.remark as remark) from Role r";
new map(属性 as 集合键名 , 属性 as 集合键名)
new map(属性 as 集合键名 , 属性 as 集合键名)
2.巧用 new javaBean
//希望返回的结果是:一个JavaBean对象(这个JavaBean有被hibernate映射过)
/*Query query = session.createQuery("select new Products(name,price) from Products");
List<Products> list = query.list();
for (Products products : list) {
System.out.println(products.getName()+"="+products.getPrice());
}*/
//希望返回的结果是:一个JavaBean对象(这个JavaBean没有被hibernate映射过)
//如果需要封装数据的JavaBean的写法使用完整版(包名+类简称),就不需要在hibernate映射
Query query = session.createQuery("select new gz.zxy.entity.ProductsVO(name,price) from Products");
List<ProductsVO> list = query.list();
for (ProductsVO products : list) {
System.out.println(products.getName()+"="+products.getPrice());
}
//希望返回的结果是:一个JavaBean对象(这个JavaBean有被hibernate映射过)
/*Query query = session.createQuery("select new Products(name,price) from Products");
List<Products> list = query.list();
for (Products products : list) {
System.out.println(products.getName()+"="+products.getPrice());
}*/
//希望返回的结果是:一个JavaBean对象(这个JavaBean没有被hibernate映射过)
//如果需要封装数据的JavaBean的写法使用完整版(包名+类简称),就不需要在hibernate映射
Query query = session.createQuery("select new gz.zxy.entity.ProductsVO(name,price) from Products");
List<ProductsVO> list = query.list();
for (ProductsVO products : list) {
System.out.println(products.getName()+"="+products.getPrice());
}
3.巧用 concat 将个字段数据拼接
/* concat将字段的值拼接起来,这样查询后name对应的值:xx省xx市xx区 */
hql= "select concat(province,city,district) as name from Region ";
/* concat将字段的值拼接起来,这样查询后name对应的值:xx省xx市xx区 */
hql= "select concat(province,city,district) as name from Region ";
HQL语句的3个小技巧的更多相关文章
- Mysql编写sql语句的小技巧
1.查询数据(保证查询性能) SELECT * 和 SELECT t.id , t.name:后者性能其实总体优于前者. 2.在查询的时候最好给表起个 别名,方便找到表中要查询的字段.执行sql的进行 ...
- (小技巧)Sql server查看sql语句的执行时间(转)
转自CSDN: 在写数据库sql的时候,我们往往很关心该sql语句的执行效率,如下小技巧可以帮助程序员简单快速的得到某条或某几条sql的执行时间. declare @d datetime set @d ...
- C#中??和?分别是什么意思? 在ASP.NET开发中一些单词的标准缩写 C#SESSION丢失问题的解决办法 在C#中INTERFACE与ABSTRACT CLASS的区别 SQL命令语句小技巧 JQUERY判断CHECKBOX是否选中三种方法 JS中!=、==、!==、===的用法和区别 在对象比较中,对象相等和对象一致分别指的是什么?
C#中??和?分别是什么意思? 在C#中??和?分别是什么意思? 1. 可空类型修饰符(?):引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空.例如:string str=null; ...
- IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题
IT咨询顾问:一次吐血的项目救火 年后的一个合作公司上线了一个子业务系统,对接公司内部的单点系统.我收到该公司的技术咨询:项目启动后没有规律的突然无法登录了,重新启动后,登录一断时间后又无法重新登 ...
- JavaScript中if语句优化和部分语法糖小技巧推荐
前言 在前端日常开发过程中,if else判断语句使用的次数应该是比较频繁的了,一些较为复杂的场景,可能会用到很多判断,在某个代码块使用很多if else时,代码会显得较为冗余,阅读起来不够清晰. 除 ...
- HQL语句大全(转载)
Hibernate配备了一种非常强大的查询语言,这种语言看上去很像SQL.但是不要被语法结构 上的相似所迷惑,HQL是非常有意识的被设计为完全面向对象的查询,它可以理解如继承.多态 和关联之类的概念. ...
- HQL语句大全
第 15 章 HQL: Hibernate查询语言 Hibernate配备了一种很强大的查询语言,这样的语言看上去很像SQL.可是不要被语法结构 上的类似所迷惑,HQL是很有意识的被设计为全然面向对象 ...
- iOS:小技巧(不断更新)
记录下一些不常用技巧,以防忘记,复制用. 1.获取当前的View在Window的frame: UIWindow * window=[[[UIApplication sharedApplication] ...
- 最强 Android Studio 使用小技巧和快捷键
写在前面 本文翻译自 Android Studio Tips by Philippe Breault,一共收集了62个 Android Studio 使用小技巧和快捷键. 根据这些小技巧的使用场景,本 ...
随机推荐
- 准备开发一个运行在Android上的JavaME模拟器
在一个虚拟机A上运行另外一个虚拟机B看起来是挺不靠谱的一件事,在手机上运行某个虚拟机也不怎么靠谱.并且如果虚拟机A运行在手机上这个听起来就更不靠谱了.但是很多人就在做这样的事.比如在在手机上运行DOS ...
- 【Kibana】Kibana入门教程
一.Kibana简介及下载安装 Kibana是专门用来为ElasticSearch设计开发的,可以提供数据查询,数据可视化等功能. 下载地址为:https://www.elastic.co/downl ...
- 通过递增快照备份 Azure 非托管 VM 磁盘
概述 Azure 存储提供创建 Blob 快照的功能. 快照将捕获该时间点的 Blob 状态. 本文介绍有关如何使用快照维护虚拟机磁盘备份的方案. 如果选择不使用 Azure 备份和恢复服务,但想要为 ...
- 用 Windows Live Writer 写blog,This is Test……..
1.下载 Windows Live Writer,百度一下下载地址,不在这里提供下载了. 2.选择安装,其它微软应用不需要就不要安装. 3.里面有很多用的插件很好玩的,点击添加插件.
- java中的String类的不可变性的小例子
在java语言中,String类具有不可变性,即常量字符串不可更改.下面的一个小例子简单演示相关概念. public class test { public static void main(Stri ...
- 【转】Java学习---10个测试框架介绍
[原文]https://www.toutiao.com/i6594302925458113027/ JAVA 程序员需要用到 10 个测试框架和库 Java 程序员需要用到十大单元测试和自动化集成测试 ...
- Docker容器学习与分享09
Docker容器之间的相互通信 先新建两个不同的网段,就用分享08里的两个网段作为新建的网段. [root@promote ~]# docker network ls NETWORK ID NAME ...
- 在 CentOS/Fedora 下安装 JAVA 环境
介绍 本文介绍如何在 CentOS 7(6/6.5). Fedora.RHEL 上安装 Java.Java是一个流行的软件平台,允许您运行Java应用程序. 本文涵盖了以下Java版本的安装: Ope ...
- yaml格式
yaml中允许表示三种格式,分别为常量值.对象和数组 例如: 其中#作为注释,yaml中只有行注释 基本格式要求: 1.大小写敏感:2.使用缩进代表层级关系: 3.缩进只能使用空格,不能使用tab键, ...
- React阻止事件冒泡的正确打开方式
需求:点击导航list按钮出现侧弹框,点击空白处弹框消失 问题:绑定空白处的点击事件到document上,但是非空白处的点击也会触发这个点击事件,在react中如何阻止事件冒泡? 解决方法:e.sto ...