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.
|