Hibernate HQL查询必知
来源:互联网 发布:js重定向url带参数 编辑:程序博客网 时间:2024/05/29 02:16
- //HQL-Associations
- String hql = "select s.name, p.name, p.price from Product p inner join p.supplier as s";
- Query query = session.createQuery(hql);
- List results = query.list();
- //HQL-Delete
- String hql = "delete from Product where name = :name";
- Query query = session.createQuery(hql);
- query.setString("name","Product 1");
- int rowCount = query.executeUpdate();
- //HQL-Function
- String hql = "select min(product.price), max(product.price) from Product product";
- Query query = session.createQuery(hql);
- List results = query.list();
- //HQL-Fetch Associations HQL Inner Join
- String hql = "from Supplier s inner join fetch s.products as p";
- Query query = session.createQuery(hql);
- List results = query.list();
- //HQL-Named Parameters
- String hql = "from Product where price > :price";
- Query query = session.createQuery(hql);
- query.setDouble("price",2.0);
- List results = query.list();
- String hql = "from Product as product where product.supplier=:supplier";
- Query query = session.createQuery(hql);
- query.setEntity("supplier",supplier);
- List results = query.list();
- //HQL-Update
- String hql = "update Supplier set name = :newName where name = :name";
- Query query = session.createQuery(hql);
- query.setString("name","Supplier Name 1");
- query.setString("newName","s1");
- int rowCount = query.executeUpdate();
- //HQL-where
- String hql = "from Product where price > 2.0 and name like 'P%'";
- Query query = session.createQuery(hql);
- List results = query.list();
- //HQL-Map
- String hql = " select new map(usr.name as userName, usr.password as password) from User usr";
- Query query = session.createQuery(hql);
- List list = query.list();
- Map goods =(Map)list.get(0);
【注】
- String hql = " select new map(usr.name as userName, usr.password as password)
- from com.jason.User usr";
- String hql = " select new map(usr.name as userName, usr.password as password)
- from com.jason.User usr";
由于from之前的空格,引起unexpected token: from
查询语句可以返回值为任何类型的属性或对象,包括返回类型为某种组件(Component)的属性:
- select cust.name.firstName from Customer as cust
- select cat.mate from Cat cat
查询语句可以返回多个对象和(或)属性,存放在 Object[]队列中:
- select mother, offspr, mate.name
- from DomesticCat as mother
- inner join mother.mate as mate
- left join mother.kittens as offspr
或存放在一个List对象中:
- select new list(mother, offspr, mate.name)
- from DomesticCat as mother
- inner join mother.mate as mate
- left outer join mother.kittens as offspr
也可能直接返回一个实际的类型安全的Java对象(假设类Family有一个合适的构造函数):
- select new Family(mother, mate, offspr)
- from DomesticCat as mother
- join mother.mate as mate
- left join mother.kittens as offspr
也可以使用关键字as给“被选择了的表达式”指派别名:
- select max(bodyWeight) as max, min(bodyWeight) as min, count(*) as n
- from Cat cat
这种做法在与子句select new map一起使用时最有用:
- select new map( max(bodyWeight) as max, min(bodyWeight) as min, count(*) as n )
- from Cat cat
- Hibernate HQL查询必知
- 转:Hibernate-hql查询必知
- 【Hibernate】Hibernate HQL 查询
- Hibernate查询语言:HQL
- hibernate查询语句--HQL
- Hibernate 查询语言(HQL)
- Hibernate查询语言:HQL
- Hibernate查询语言:HQL
- Hibernate查询语言:HQL
- Hibernate查询语言:HQL
- Hibernate查询语言:HQL
- Hibernate查询语言:HQL
- Hibernate查询语言:HQL
- hibernate查询语句--HQL
- hibernate查询语句--HQL
- Hibernate查询语句+HQL
- Hibernate查询语言:HQL
- 查询 Hibernate HQL
- Linux下系统调用的实现
- 成熟的人该拥有的境界
- bat文件安装windows服务
- 用ondrag事件简单的实现鼠标拖动物件
- 全面讲述Lucene3.0的Lucene In Action(第二版)出来了
- Hibernate HQL查询必知
- usb-skeleton.c 之 11---skel_read
- Cent OS上配置Apache2 + SVN
- 基准比对过程和模型
- do...while(0)
- 批处理命令大全
- 《PHP Cookbook》学习笔记(六)
- usb-skeleton.c 之 12---skel_write_bulk_callback
- Continuation in LISP