例如,PlayerEJB entity bean实现的ejbSelectSports方法返回一个相应于sport的String对象的结果集。sport就是LeagueEJB entity bean的一个持续化字段。参见示例 11.
一个SELECT子句不能指定一个collection-valued表达式。例如,在SELECT子句中,p.teams就是非法的,这是因为teams是一个集合但是下面查询中的SELECT子句是有效的,这是因为t是teams集合中的单个元素:
|
DISTINCT关键字和OBJECT关键字
DISTINCT关键字用来去除返回值中的重复值。如果这个查询的方法返回一个java.util.Collection--它允许重复--那么你必须指定DISTINCT关键字以去除重复值。但是,如果方法返回一个java.util.Set,DISTINCT关键字就是多余的,这是因为java.util.Set不可以包含重复值。
在一个单独的标识变量前必须使用OBJECT关键字,但是在一个single-valued路么表达式前不需要使用它。如果一个标识变量是一个single-valued路径表达式的一部分,那么它不被认为是单独的。
EJB QL约束
EJB QL有以下约束:
1、不允许用注释。
2、日期和时间值精确到毫秒级并使用Java long类型。一个日期和时间常量必须是一个整型常量。要生成毫秒值,你可以使用java.util.Calendar类。
3、通常情况下。容器管理持续化不支持继承。因为这个原因,两个不同类型的entity bean不能进行比较。
文章来源于领测软件测试网 https://www.ltesting.net/