|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
时间:2008-04-10 关键字: ejb3 ejb注释 ejb学习笔记
9. 查询 A. 位置参数查询。格式为:“ ?+ 位置编号” , 例如: Query query = em.createQuery("select p from Person p where p.personid=?1"); query.setParameter(1,new Integer(1)); B. 命令参数查询,格式为:“: + 参数名”,例如: Query query = em.createQuery("select p from Person p where p.personid=:Id"); query.setParameter("Id",new Integer(1)); C. 排序 (order by) "ASC" 和 "DESC" 分别为升序和降序,如果不显式注明, EJB3 QL 中默认为 ASC 升序。 D. 查询中使用构造器 (Constructor) EJB3 QL 支持将查询的属性结果直接作为一个 java class 的构造器参数,并产生实体作为结果返回。例如: Query query = em.createQuery("select new com.foshanshop.ejb3.bean.SimplePerson(p.name,p.sex) from Person p order by p.personid desc"); // 集合中的元素是 SimplePerson 对象 List result = query.getResultList(); E. EJB3 QL 也支持查询中的聚合函数。目前 EJB3 QL 支持的聚合函数包括: AVG() 、 SUM() 、 COUNT() 、 MAX() 、 MIN() ,用法与 SQL 里面的类似。 F. group by , having , where 等关键字的用法,和 SQL 语法类似。 G. 关联 (join) 在 EJB3 QL 中,仍然支持和 SQL 中类似的关联语法: a. Left out join/left join left out join/left join 等,都是允许符合条件的右边表达式中的 Entities 为空。需要显式使用 left join/left outer join 的情况会比较少。 b. Inner join inner join 要求右边的表达式必须返回 Entities 。 c. Left join/inner join fetch left/left out/inner join fetch 提供了一种灵活的查询加载方式来提高查询的性能。在默认的查询中, Entity 中的集合属性默认不会被关联,集合属性默认是缓加载 ( lazy-load ) H. 比较 Entity 在查询中使用参数查询时,参数类型除了 String, 原始数据类型 ( int, double 等 ) 和它们的对象类型 ( Integer, Double 等 ), 也可以是 Entity 的实例。例如: Query query = em.createQuery("select o from Order o where o.ower =?1 order by o.orderid"); Person person = new Person(); person.setPersonid(new Integer(1)); // 设置查询中的参数 query.setParameter(1,person); I. not in , between , in , like , exists , is null , is empty 等关键字的用法,和 SQL 语法类似。 J. 字符串函数 EJB3 QL 定义了内置函数方便使用。这些函数的使用方法和 SQL 中相应的函数方法类似。 EJB3 QL 中定义的字符串函数包括: a. CONCAT 字符串拼接 b. SUBSTRING 字符串截取 c. TRIM 去掉空格 d. LOWER 转换成小写 e. UPPER 转换成大写 f. LENGTH 字符串长度 g. LOCATE 字符串定位 K. 计算函数 EJB3 QL 中定义的计算函数包括: a. ABS 绝对值 b. SQRT 平方根 c. MOD 取余数 d. SIZE 取集合的数量 注意: size 的用法,例如: Query query = em.createQuery("select o.orderid, size(o.orderItems) from Order as o group by o.orderid");
EJB3学习笔记之 EJB3中的注释(一)EJB3学习笔记之 EJB3中的注释(二)EJB3学习笔记之 EJB3中的注释(三)EJB3学习笔记之 EJB3中的注释(四)EJB3学习笔记之 EJB3中的注释(五)声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
浏览 268 次


