EJB3学习笔记之 EJB3中的注释(四)
关键字: 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中的注释(五)
- 16:07
- 浏览 (712)
- 论坛浏览 (328)
- 评论 (0)
- 分类: JavaEE技术
- 发布在 JBoss SEAM 圈子
- 相关推荐
我的相册
共 13 张
最近加入圈子
最新评论
-
Gwt-Ext学习笔记之基础篇
请问两个TextField的问题:1 好像它的冒号是自动加上的,如果我想去掉应该 ...
-- by yangf0704 -
POI读取EXCEL教程
多谢多谢!
-- by zrwlc2008 -
Gwt-Ext学习笔记之基础篇
问个问题,我项目在GWT hosted model下运行正常,打包成WAR文件后 ...
-- by leofantasy -
Seam 开发工具参考指南
seam入门的好东西,呵呵,E文好的话可以直接看
-- by xiekui -
遇到Out Memory的几种情况 ...
无限循环的线程,死锁,问题也会导致JVM OUT OF MEMORY
-- by pengpeng







评论排行榜