1. Object()操作符

感觉就是Sun公司创造出来的幌子,什么意义也没有。只是给ejb的实现方确定什么时候那个abstract schema类型成为返回值。对于QL查询本身而言,确实没有什么意义。Sun公司的解释好像是下一代SQL规范里可能包含这个操作符。呵呵。鬼知道SQL2003或者更新版本里是否有这个操作符,反正我是没有看到。


2. 缺乏对Date类型的操作

缺省对java.util.Date原生类型的支持。


3. 支持的SQL函数太少了

连CAST(), DOW(), MONTH(), UPPER(), LOWER()这些简单的函数都没有。 看看它支持的有限几个聚集函数吧:

count, sum, avg, max, min


4. 选择多个列也不行

SELECT addr.city, addr.state  FROM Address AS addr这种语句肯定无效,一次只能选择一列


5. group by 和having

支持吗?好像支持


6. Subqueries

支持吗?似乎也支持。

SELECT  OBJECT(res)


FROM Reservations AS res


WHERE res.amountPaid >=


     ( SELECT AVG(r.amountPaid) FROM Cruise AS c, IN( c.reservations ) AS r  


       WHERE c = ?1   )


7. 动态查询

大多数vendor都支持这个,但是规范里不支持。不明白为什么不支持。