Jump to: navigation, search

EclipseLink/DesignDocs/251594

< EclipseLink‎ | DesignDocs
Revision as of 15:40, 21 October 2008 by James.sutherland.oracle.com (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Query Hints

ER 251594

Document History

Date Author Version Description & Notes
2008-10-21 James 0.1 Draft

Project overview

The complete functionality of the EclipseLink query framework needs to be exposed to JPA usage through query hints. Many of these hints have been requested by users, and some have been added, this attempt to provide the complete set and allow them to be documentation and names standardized.

Concepts

The query framework is the set of query classes defining EclipseLink's native query API.

Requirements

Support all relevant functionality of the EclipseLink native API query framework through JPA hints.

Functionality

List of new hints:

  • eclipselink.query-results-cache
  • eclipselink.query-results-cache.size
  • eclipselink.query-results-cache.expiry
  • eclipselink.query-results-cache.expiry-time-of-day
  • eclipselink.maintain-cache
  • eclipselink.session-name
  • eclipselink.prepare
  • eclipselink.jdbc.cache-statement
  • eclipselink.sql.hint
  • eclipselink.flush
  • eclipselink.jdbc.native-connection
  • eclipselink.sql
  • eclipselink.call
  • eclipselink.redirect
  • eclipselink.expression
  • eclipselink.query-type +support all query types
  • eclipselink.result-type (Map, Array, Value, Values)
  • eclipselink.cursor
  • eclipselink.cursor.initial-size
  • eclipselink.cursor.page-size
  • eclipselink.cursor.scrollable
  • eclipselink.cursor.scrollable.result-set-type (Forward, ForwardOnly, Unknown, Reverse,

ScrollInsensitive, ScrollSensitive)

  • eclipselink.cursor.scrollable.result-set-concurrency (ReadOnly, Updatable)
  • eclipselink.cursor.size-query
  • eclipselink.fetch-group.name
  • eclipselink.fetch-group.attribute
  • eclipselink.fetch-group.default
  • eclipselink.cache-usage.indirection-policy (Include, Exclude, ThrowException, Trigger)
  • eclipselink.cache-usage +support modify queries
  • eclipselink.exclusive-connection
  • eclipselink.inheritance.outer-join
  • eclipselink.history.as-of
  • eclipselink.history.as-of-scn
  • eclipselink.example-object
  • eclipselink.example-object.policy
  • eclipselink.hierarchical.connect-by
  • eclipselink.hierarchical.start-with
  • eclipselink.hierarchical.order-siblings
  • eclipselink.jdbc.first-result

In addition the hint must not be stored as a Map, as some hints require multiple values (fetch, batch). The fetch hint should also allow usage of an outer-join.

i.e. "eclipselink.join-fetch"="emp.+address"

Documentation

New hints will require documentation in user docs.

Open Issues

Decisions

Issue # Owner Description / Notes
01 Should hierarchical be hints or JPQL?

Future Considerations

Issue # Description / Notes Decision