Query Capability EJB 3.0 JDO 2.0 Notes
Bulk operations (update/delete) Supported Supported JDO does not have explicit APIs for bulk update, but instead vendors use statement batching implicitly for large transactional updates. Also, you can use direct SQL for bulk updates. There are methods for bulk deletion without requiring object loads from the database.
JOIN operation (inner/outer) Supported Supported
GroupBy Supported Supported
Having Supported Supported
Projections Supported Supported
Polymorphic Queries Supported Supported
Named queries Supported Supported
Direct SQL support Supported Supported
Fetch JOINs Supported Supported EJB allows Fetch JOINs only through one level of relationship. JDO allows multiple levels.
Function support (Upper, Lower, Trim, Position, Char_lenth, Bit_Length, Current_Time) Supported Supported JDO directly supports only Upper and Lower as named methods; however, by using direct SQL you can invoke any database-specific function.
Database isolation levels on query Supported Not explicitly defined in the specification, but implemented by all major vendors as part of connection configuration.

Table 2 New EJBQL Features
New features proposed in EJBQL for the EJB 3.0 release are compared to those available in JDO 2.0.