hql

Hibernate之HQL

岁酱吖の 提交于 2020-01-30 09:33:15
什么是hql? HQL是Hibernate Query Language的缩写 hql和sql区别/异同 HQL SQL 类名/属性 表名/列名 区分大小写,关键字不区分大小写 不区分大小写 别名 别名 ?,从下标0开始计算位置(hibernate5之后不支持) ?,从顺序1开始计算位置 :命名参数 不支持:命名参数 面向对象的查询语言 面向结构查询语言 处理返回的结果集 单个对象 select没有逗号 Object[] b.bookId, b.bookName Map new Map(b.bookId as bid, b.bookName as bname) new 构造方法(attr1,attr2) new Book(b.bookId, b.price) 单个列段 HqlTest: package com.psy.five.test; import java.util.Arrays; import java.util.List; import java.util.Map; import org.hibernate.Session; import org.hibernate.Transaction; import org.hibernate.query.Query; import org.junit.After; import org.junit.Before; import

Hibernate之HQL

佐手、 提交于 2020-01-30 09:08:26
什么是HQL? HQL是 Hibernate Query Language 的缩写,提供更加丰富灵活、更为强大的查询能力;HQL更接近SQL语句查询语法。 HQL与SQL有何不同:   1.HQL 对查询条件进行了 面向对象 封装,符合编程人员的思维方式,格式:from + 类名 + 类对象 + where + 对象的属性 区分大小写,关键字不区分大小写 从下标0开始计算位置(hibernate5之后不支持) 支持命名参数   2.SQL sql是面向数据库表查询,格式:from + 表名 + where + 表中字段 不区分大小写 从顺序1开始计算位置 不支持:命名参数 处理返回的结果集 单个对象 多个列段 object【】 对象(多个列段、全部) Map 这里写了一个JUnit测试类来测试这些效果 注意:测试类中需要设置session,transaction属性,然后就可以在类中写方法论      1. 单个对象      select没有逗号   如果是单个列段的话,就直接可以用String接收对象,这样就避免一些麻烦 /** * 返回单个列段,用字符串就可以接受 */ @Test public void testList2() { Query query = session.createQuery("select b.bookName as ss from Book b")

Hibernate HQL查询(2)

|▌冷眼眸甩不掉的悲伤 提交于 2020-01-30 08:19:34
hql是面向对象查询,格式:from + 类名 + 类对象 + where + 对象的属性 sql是面向数据库表查询,格式:from + 表名 + where + 表中字段 1、查询 一般在Hibernate中使用查询时,推荐使用hql(Hibernate Query Language)查询语句。 使用hql的时候需要注意: A、大小写敏感 因为hql是面向对象的,而对象类的名称和属性都是大小写敏感的,所以hql也是大小写敏感的。因此,在编写hql语句的时候,一定要注意大小写。 B、from子句 from子句的形式和sql基本类似,不过一般会给类名起一个别名(如from Dog d,其中d就是Dog类的对象) 对于多表查询的连接,则和sql完全一样(如from Dog d,Cat c) 1.1简单查询举例 Java代码 List list = session.createQuery( "(select user)from Useras user order by user.loginName" ).list(); 注:标红的表示可与省略,省略select关键字相当于sql的select * 1.2采用占位符查询 Java代码 Query query = session.createQuery( "select u.id, u.name from User u where u

HQL查询

做~自己de王妃 提交于 2020-01-30 07:01:36
本节内容: hibernate检索方式说明 什么是HQL HQL检索方式 HQL查询的from子句 HQL查询的select子句 HQL查询的聚集函数 HQL查询的where子句 绑定参数 排序 分组函数 分页查询 对象导航式 连接查询 本地 SQL 检索方式 1 Hibernate 提供了以下几种检索对象的方式 l OID检索方式(Object Identifier)     OID对象标始符,按照对象的OID来检索对象。Session的get()和load()方法提供了这种功能。如果在应用程序中事先知道了OID,就可以使用这种检索对象的方式。 l HQL检索方式     使用面向对象的HQL查询语言。 Hibernate提供了Query接口,它是Hibernate提供的专门的HQL查询接口,能够执行各种复杂的HQL查询语句 l QBC检索方式     使用(Query By Criteria)API来检索对象。这种API封装了基于字符串形式的查询语句,提供了更面向对象的接口。 l 本地SQL检索方式     使用本地数据库的SQL查询语句。Hibernate会负责把检索到的JDBC ResultSet结果集映射成为对象图。 2 什么是HQL Hibernate语言查询(Hibernate Query Language,HQL):它是完全面向对象的查询语句,查询功能非常强大

Hibernate HQL Query with outer join

无人久伴 提交于 2020-01-28 11:23:28
问题 I would like to ask how to change the OUTER from Informix to HQL query. Currently facing error with unexpected token:outer SQL query: select a.SC_OB_PROFILE_CODE, b.SC_ORIG_SF_GROUP_CODE, f.SC_ORIG_SAC, f.SC_ORIG_FAC,b.SC_PROD_CONT_GROUP_CODE, d.SC_PROD_CONT_CODE, e.GP_CD, a.SC_ORIG_COUNTRY, a.SC_DEST_COUNTRY, a.SC_DEST_SAC, a.SC_DEST_FAC, a.SC_SEND_DOW, a.SC_OB_SORT_CODE, a.ORIG_OB_SORT_CODE, a.TARGET_OB_SORT_CODE, a.SC_TIMESTAMP from SC_OB_TEMP_AUDIT2 a, SC_OB_ALLOCATION b, outer SC_FAC

错题纠正

泄露秘密 提交于 2020-01-27 14:54:29
此题目考查的是对Hibernate中交叉连接的理解。HQL支持SQL风格的交叉连接查询,交叉连接适用于两个类之间没有定义任何关联时。在where字句中,通过属性作为筛选条件,如统计报表数据。使用交叉连接时应避免“from Dept,Emp”这样的语句出现。执行这条HQL查询语句,返回DEPT表和EMP表的交叉组合,结果集的记录数为两个表的记录数之积,也就是数据库中的笛卡尔积。这样的查询结果没有实际意义,因此选项b是正确的。A和C答案都是符合上述描述的,是适合使用交叉连接的场合。D答案认为以上三种都适合,与上述描述冲突。由于题目要求选择不适合使用交叉连接的选项,因此选项B、C、D是错误的。 本题考核的是Hibernate-HQL查询中的HQL概述。答案A中,HQL的select语句中的类名和属性名是区分大小写的;答案B中,HQL是支持统计函数的;答案D中,绑定参数的序号从0开始。所以ABD都不正确,只有C是正确的。因此答案是c。 此题考查的是:HQL查询语句,及HQL语句的别名的命名规则,答案A中,select可以省略,是正确的;答案B中,表达的也是正确的;答案C中,HQL是支持聚合函数的,所以C的表达式错误的;答案D中,表达的也是正确的。本题选择的是错误的表达,所以ABD都不符合,只有C符合。因此答案是c。 load()和get()都是先找缓存,再找数据库。 不同点是在检索时:

01hive基础操作

六眼飞鱼酱① 提交于 2020-01-26 10:52:42
一. Hive基础概念 1.什么是Hive Hive:由 Facebook 开源用于解决海量结构化日志的数据统计。 Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类 SQL 查询功能。 本质是:将 HQL 转化成 MapReduce 程序。 1)Hive 处理的数据存储在 HDFS 2)Hive 分析数据底层的默认实现是 MapReduce 3)执行程序运行在 Yarn 上 2.优缺点 2.1 优点 1) 操作接口采用类 SQL 语法,提供快速开发的能力(简单、容易上手)。 2) 避免了去写 MapReduce,减少开发人员的学习成本。 3) Hive 的执行延迟比较高,因此 Hive 常用于数据分析,对实时性要求不高的场合。 4) Hive 优势在于处理大数据,对于处理小数据没有优势,因为 Hive 的执行延迟比较高。 5) Hive 支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。 2.2 缺点 1.Hive 的 HQL 表达能力有限 (1)迭代式算法无法表达 (2)数据挖掘方面不擅长 2.Hive 的效率比较低 (1)Hive 自动生成的 MapReduce 作业,通常情况下不够智能化 (2)Hive 调优比较困难,粒度较粗 3. 架构原理 1.用户接口:Client CLI(hive shell)、JDBC

Chaining setParameter on Hibernate Query

孤者浪人 提交于 2020-01-25 23:47:05
问题 As you can see I have two named parameters, one being set by setParameterList() and one being set by setParmeter(). The problem is the List is not being ordered. When I set the order field explicitly it works fine, but the same string is being passed into the method it doesn't work. Is it that setParameter and and setParameterList can't be chained? They both return a query do I don't see why not. What am I missing? public List<Subject> getSubjectsByMedium(String orda, Medium... medium) { List

Convert SQL query to HQL or map result to hibernate entity

血红的双手。 提交于 2020-01-25 21:33:06
问题 I have below SQL query select column1 ,column2 ,column3 ,column4 ,column5 ,column6 from ( select ROW_NUMBER() OVER (PARTITION BY column2 ORDER BY null desc) rn,column1, column2 ,column3 ,column4 ,column5 ,column6 from TBLCUSTOMERSUBMODULERELATION where column1 = 'somevalue' AND column3 ='somevalue') where rn=1; i want to convert this query to HQL. In my code column1,column2,column3 is EmbeddedId I have tried to convert or mapped directly this result in my class object using below code session

HQL how to join three table

 ̄綄美尐妖づ 提交于 2020-01-23 01:33:06
问题 I Have this classes: @Entity public class Category { private Long Id; private String name; private String description; private List<Product> products; } @Entity public class Inventory { private Long id; private Product product; private int quantity; } @Entity public class Product { private Long productId; private String name; } I want to get the Inventory given the id in the category. i'm trying to use this return session.createQuery("select i from Inventory i, Category c join c.Products p