例如,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不能進行比較。
文章來源于領測軟件測試網 http://www.kjueaiud.com/