HQL

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HQL相关的知识,希望对你有一定的参考价值。

1. hql是面向对象的查询语言,映射配置的持久化类及其属性;

2.select   from    where    group by   having    order  by

3. 对java类与属性与大小写敏感,        对关键字不区分大小写

 

准备查询

1.org.hibernate.Query接口:

                                           Query接口定义有执行查询的方法

                                           方法链编程风格,动态设置

 

            (1)Query实例创建:Session的createQuery方法创建Query实例;

                                          createQuery(hql) :           Strig hql=" from 类名 ";

                                                                                 Query query=session.createQuery(hql);

                                                                                  query.list();

             (2)执行查询:Query接口的list()方法执行HQL查询,

                                查询返回为java.util.List集合,符合条件的对象。

 

2.from子句简介及简单案例实现:

                                                   Strig hql=" from 类名 ";(类名不需要使用全限定名:由于auto-import自动引入缺省情况)

                                                    Query query=session.createQuery(hql);

                                                     query.list();

               别名的使用:

                      Strig hql=" from 类名  as  别名";(可以省略as关键字)

 

3.select字句:

  (1):select 字句未指定返回类型,默认为object[];只有一个熟悉时,返回object对象

   (2):通过List返回查询结果,String hql="select new list(s.name,s.tel) from Seller s";

   (3):以Map形式返回:String hql="select new list(s.name,s.tel) from Seller s"; map.get("0")-可以看到key为字符串形式

                       以别名形式:String hql="select new map(s.name as name,s.tel as tel) from Seller s"; map.get("name")-可以看到key为字符串形式

   (4):自定义类型返回查询结果: 首先持久化类中定义对应的构造器;然后select字句中调用定义好的构造器

               如添加构造器:     public Seller(String name,String del){

                                       this.name=name;

                                        this.del=del;

                                         }

          String hql="select new Seller(s.name,s.del) from Seller s";

   (5)午餐构造器的必要性;

   (6)distinct 去重 String hql="select distinct s.sex from Seller s";

  

            

以上是关于HQL的主要内容,如果未能解决你的问题,请参考以下文章

HQL查询——HQL查询的基本用法

能讲讲 hql 语句么?

HQL

当具有相同术语的 HQL 选择有效时,为啥此 HQL 删除失败?

HQL

hibernate之HQL