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 ?


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


To post on this website please sign in.