ObjectDB ObjectDB

JPA 2.0 Criteria API: (When) Fully supported ?


An excerpt from the website of a 3rd party vendor which tries to support JPA 2.0:

  "The primary difference between JPA 1.0 and JPA 2.0 implementations is how data is fetched: the JPA 1.0 implementation creates a JPQL query string for fetching while the JPA 2.0 implementation uses Criteria API.

  Tested JPA 2.0 providers

   * Hibernate 3.6.1 - PASS. Minimum version 3.6.1 - older versions have a bug in the Criteria API implementation which prevents correct negation of conjunction and disjunction predicates.
   * EclipseLink 2.2.0 - PASS.
   * OpenJPA 2.1.0 - FAIL. Does not support "lower(FIELD_NAME) LIKE lower('value')". According to the exception message only "lower(FIELD_NAME) LIKE 'value'" is supported:

     org.apache.openjpa.persistence.ArgumentException: The filter listener "matches" requires a constant argument.

   * DataNucleus 2.2.2 - FAIL. Was not able to create even a simple query with Criteria API.
   * ObjectDB 2.1.0 - FAIL. Does not support Criteria API:
     java.lang.UnsupportedOperationException: Unsupported feature - JPA Criteria Builder"

The latest ObjectDB JPA 2.0 implementation - version 2.3.7 - is not (yet) listed in the list of Tested JPA 2.0 providers; but, of course, I would like to know:
- When will the ObjectDB JPA 2.0 implementation fully support the JPA 2.0 Criteria API ? In the sense that it passes the test of the above 3rd party vendor ?

In heaven there's no beer, that's why we drink it here ...

The JPA Criteria API is supported by ObjectDB since version 2.2.0.

As of version 2.3.7, ObjectDB still doesn't support subqueries (issue #11), map keys (issue #13) and case statements (issue #14), so these elements are not supported in either string based JPQL or criteria queries.

ObjectDB Support
ObjectDB - Fast Object Database for Java (JPA/JDO)


To post on this website please sign in.