openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Pinaki Poddar (JIRA)" <>
Subject [jira] Created: (OPENJPA-1014) Build weakly-typed Criteria API
Date Tue, 31 Mar 2009 17:06:50 GMT
Build weakly-typed Criteria API

                 Key: OPENJPA-1014
             Project: OpenJPA
          Issue Type: New Feature
          Components: jpa
            Reporter: Pinaki Poddar
            Assignee: Pinaki Poddar
             Fix For: 2.0.0-M1

JPA 2.0 has introduced specification for weakly-typed (I prefer relaxed-typed) dynamic query
construction a.k.a untypesafe Criteria API. The earlier draft version of JPA described a relaxed-typed
dynamic query which had already been implemented in OpenJPA. However, this API had a short
life span and now no more endorsed by the spec. Given that the API has been reasonably  appreciated
by the user community with its ease of use and we already have an implementation for it, that
implementation is refactored into a OpenJPA specific 'Dynamic Query' API. The approach followed
to implement this 'Dynamic Query' was completely decoupled from OpenJPA query infrastructure.
The output was a pure JPQL string and that was the input to OpenJPA query. The approach had
its advantage of a clean design at the cost of paying for parsing the JPQL query string again.

While it is possible to revert to that strategy for new relaxed-typed Criteria API but such
strategy will force us to very dissimilar approaches (one for the strict-typed and the other
for the relaxed-typed). Instead what I am proposing is to implement relaxed-type API on the
basis of strongly-typed API implementation. Given that the strongly-typed API will require
a meta-model, I feel we can devise a way for the relaxed-typed API to resolve as soon as possible
the user input (String) to a proper type (Class). This will keep the implementation uniform.


This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message