Find JSRs
Submit this Search


Ad Banner
 
 
 
 

Summary  |  Proposal  |  Detail (Summary & Proposal)
JSRs: Java Specification Requests
JSR 317: JavaTM Persistence 2.0

Stage Access Start Finish
Final Release Download page 10 Dec, 2009  
Final Approval Ballot View results 17 Nov, 2009 30 Nov, 2009
Proposed Final Draft 2 Download page 22 Sep, 2009  
Proposed Final Draft Download page 26 Mar, 2009  
Public Review Ballot View results 09 Dec, 2008 15 Dec, 2008
Public Review Download page 14 Nov, 2008 15 Dec, 2008
Early Draft Review Download page 02 May, 2008 01 Jun, 2008
Expert Group Formation   01 Aug, 2007  
JSR Review Ballot View results 17 Jul, 2007 30 Jul, 2007
Status: Final
JCP version in use: 2.7
Java Specification Participation Agreement version in use: 2.0


Description:
The Java Persistence API is the Java API for the management of persistence and object/relational mapping for Java EE and Java SE environments.

Please direct comments on this JSR to the Spec Lead(s)
Team

Specification Leads
Star Spec Lead Linda Demichiel Oracle
Expert Group
  Adobe Systems Inc. akquinet tech@spree BEA Systems
  Bien, Adam DataDirect Technologies Ericsson AB
  Goncalves, Antonio IBM Maki, Chris
  Oracle OW2 Pramati Technologies
  Red Hat SAP SE Sun Microsystems, Inc.
  Sybase TmaxSoft, Inc. VMware

If you would like to be added to the observer alias for this JSR and receive e-mail updates on the progress of the JSR, please send e-mail to the Spec Lead with "Add to observer alias" in the subject line.

Updates to the Original JSR

The following information has been updated from the original proposal:

2008.11.07

2.18 Please provide a description of the business terms for the Specification, RI and TCK that will apply when this JSR is final.

Pursuant to Section 2.2.1 of the Java Community Process version 2.6, the following is a summary of Sun's anticipated principal license terms and conditions for the JSR, Java Persistence API, version 2.0. The business terms for the Java Persistence API, version 2.0 have not changed from those for the Java Persistence API, version 1.0 and they impose no new restrictions.

In addition to delivering the Reference Implementation (RI) and TCK pursuant to existing contractual obligations, if and where applicable, Sun terms will be:

The Java Persistence API, version 2.0 Technology Compatibility Kit (TCK) will be available both as a standalone TCK and included as part of the Java EE 6 Compatibility Test Suite (CTS). The Java Persistence API, version 2.0 Reference Implementation (RI) will be available both separately and as part of the Java EE 6 RI.

Non-Commercial Use

As required by the Java Specification Participation Agreement (JSPA), the Java Persistence API, version 2.0 TCK will be licensed at no charge without support to qualified not-for-profit entities. Such qualification will be verified by the Compatibility Testing Scholarship Program. Support may also be provided at no charge with approval of the scholarship board. For more information, please refer to: http://java.sun.com/scholarship/.

The RI will be available at no cost under an open source license.

Commercial Use

Covers all use that doesn't fall under "Non-Commercial Use" above.

Java Persistence API, version 2.0 Java Licensee Engineering (JLE) support, available for a fee not to exceed $50k, is required for commercial use for each Marketed Product* which implements the Java Persistence API, version 2.0 specification. TCK JLE support includes access, updates and upgrades to the TCK at no additional charge.

Java Persistence API, version 2.0 RI and TCK JLE and marketing support will be made available at no extra charge to Java EE licensees under their Java EE business terms.

The RI will also be made available at no cost under an open source license for commercial use.

For purposes of these terms:

Marketed Product is intended to describe a licensee's product that has its own differentiation and marketing collateral. It may comprise one price list entry, or in some cases multiple entries (for example, to account for different localizations or delivery packaging). By way of example, in terms of Sun's product line we wouldn't consider Sun's Java Application Server to be a Marketed Product, but Sun's Java Application Server Platform Edition, Standard Edition, and Enterprise Edition are 3 Marketed Products. Sun's Java Studio Enterprise is a fourth Marketed Product.


Original Java Specification Request (JSR)

Identification | Request | Contributions

Section 1. Identification

Submitting Member: Sun Microsystems

Name of Contact Person: Linda DeMichiel

E-Mail Address: linda.demichiel@sun.com

Telephone Number: +1 408 276 7057

Fax Number: +1 408 276 7191


Specification Lead: Linda DeMichiel

E-Mail Address: linda.demichiel@sun.com

Telephone Number: +1 408 276 7057

Fax Number: +1 408 276 7191


Initial Expert Group Membership:

-

Supporting this JSR:

* Hani Suleiman
* Tmax Soft
* Sybase
* Apache
* Pramati
* Oracle
* Diamelle Technologies
* SAP
* JBoss (Red Hat Middleware LLC)
* BEA
* Xcalia
* Charlton Barreto
* Felipe Leme



Section 2: Request

2.1 Please describe the proposed Specification:

The Java Persistence API is the Java API for the management of persistence and object/relational mapping for Java EE and Java SE environments.

The purpose of the Java Persistence 2.0 specification is to augment the Java Persistence API to include further features requested by the community, including additional object/relational mapping functionality and query language capabilities, a criteria-based query API, and standardization of features currently designated as optional, and to align it with related JSRs that are currently in-process and/on in-plan for the Java EE 6 timeframe.

Aspects that should be considered by the Expert Group for inclusion in this work include, but are not limited to, the following:

  • Expanded object/relational mapping functionality, including greater flexibility in combining existing mapping options, support for collections of embedded objects, multiple levels of embedded objects, ordered lists, combinations of access types, etc.
  • Additions to the Java Persistence query language
  • An API for "criteria" queries
  • Standardization of sets of "hints" for query configuration and for entity manager configuration
  • Standardization of additional metadata to support DDL generation and "Java2DB" mapping
  • Expanded pluggability contracts to support efficient passivation and replication of extended persistence contexts in Java EE environments
  • Standardization of additional contracts for entity detachment and merge, and persistence context management
  • Support for validation

The goal of the Expert Group will be to investigate these issues and identify and pursue directions for enhancement for the overall programming model and facilities of the Java Persistence API.

2.2 What is the target Java platform? (i.e., desktop, server, personal, embedded, card, etc.)

The target platforms are Java EE and Java SE.

2.3 The Executive Committees would like to ensure JSR submitters think about how their proposed technology relates to all of the Java platform editions. Please provide details here for which platform editions are being targeted by this JSR, and how this JSR has considered the relationship with the other platform editions.

The Java Persistence API is designed for use in both Java EE and Java SE platform environments. It is expected that Java Persistence 2.0 will be included as a required part of the Java Platform, Enterprise Edition version 6. Aligning the timeline of this JSR with that of Java EE 6 may therefore impact the Java Persistence 2.0 release.

2.4 Should this JSR be voted on by both Executive Committees?

No. It should be voted on by the Java SE / EE Executive Committee only.

2.5 What need of the Java community will be addressed by the proposed specification?

The goal of the proposed specification is to address the needs of the Java community by augmenting the functionality of Java Persistence to address requests received from the Java community for additional features, as well as to further standardize what were designated as optional features in the initial release.

2.6 Why isn't this need met by existing specifications?

See 2.5 above. The Java Persistence 2.0 release will augment the initial Java Persistence API release with features that have been requested and that are not present in the first release.

2.7 Please give a short description of the underlying technology or technologies:

See above.

2.8 Is there a proposed package name for the API Specification? (i.e., javapi.something, org.something, etc.)

The API Specification will continue to use the javax.persistence and javax.persistence.spi packages.

2.9 Does the proposed specification have any dependencies on specific operating systems, CPUs, or I/O devices that you know of?

No

2.10 Are there any security issues that cannot be addressed by the current security model?

No

2.11 Are there any internationalization or localization issues?

No

2.12 Are there any existing specifications that might be rendered obsolete, deprecated, or in need of revision as a result of this work?

No

2.13 Please describe the anticipated schedule for the development of this specification.

August 2007 Expert group formed
December 2007 Early Draft review
April 2008 Public Review
Q4 2008
Final release

2.14 Please describe the anticipated working model for the Expert Group working on developing this specification.

The primary means of communication will be email and conference calls. Face-to-face meetings will be scheduled if needed.

2.15 It is important to the success of the community and each JSR that the work of the Expert Group be handled in a manner which provides the community and the public with insight into the work the Expert Group is doing, and the decisions that the Expert Group has made. The Executive Committees would like to ensure Spec Leads understand the value of this transparency and ask that each JSR have an operating plan in place for how their JSR will address the involvement of the community and the public. Please provide your plan here, and refer to the Spec Lead Guide for a more detailed description and a set of example questions you may wish to answer in your plan.

The Expert Group will publish early drafts for review by the community at convenient points during the development of the specification. The Expert Group will solicit feedback from the community via public fora (e.g., public presentations, blogs, and other online postings).

2.16 Please describe how the RI and TCK will de delivered, i.e. as part of a profile or platform edition, or stand-alone, or both. Include version information for the profile or platform in your answer.

Sun Microsystems will deliver a Reference Implementation (RI) and Technology Compatibility Kit (TCK) available both stand-alone and as part of Java EE 6.

2.17 Please state the rationale if previous versions are available stand-alone and you are now proposing in 2.13 to only deliver RI and TCK as part of a profile or platform edition (See sections 1.1.5 and 1.1.6 of the JCP 2 document).

N/A

2.18 Please provide a description of the business terms for the Specification, RI and TCK that will apply when this JSR is final.

Pursuant to Section 2.2.1 of the Java Community Process version 2.6, the following is a summary of Sun's anticipated principal license terms and conditions for the JSR, Java Persistence API, version 2.0. The business terms for the Java Persistence API, version 2.0 have not changed from those for the Java Persistence API, version 1.0 and they impose no new restrictions.

The Java Persistence API, version 2.0 Technology Compatibility Kit (TCK) will be available both as a standalone TCK and included as part of the Java EE 6 Compatibility Test Suite (CTS). The Java Persistence API, version 2.0 Reference Implementation (RI) will be available both separately and as part of the Java EE 6 RI.

Non-Commercial Use

As required by the Java Specification Participation Agreement (JSPA), the Java Persistence API, version 2.0 TCK will be licensed at no charge without support to qualified not-for-profit entities. Such qualification will be verified by the Compatibility Testing Scholarship Program. Support may also be provided at no charge with approval of the scholarship board. For more information, please refer to: http://java.sun.com/scholarship/.

The RI will be available at no cost under an open source license.

Commercial Use

Covers all use that doesn't fall under "Non-Commercial Use" above.

Java Persistence API, version 2.0 Java Licensee Engineering (JLE) support, available for a fee not to exceed $50k, is required for commercial use for each Marketed Product* which implements the Java Persistence API, version 2.0 specification. TCK JLE support includes access, updates and upgrades to the TCK at no additional charge.

Java Persistence API, version 2.0 RI and TCK JLE and marketing support will be made available at no extra charge to Java EE licensees under their Java EE business terms.

The RI will also be made available at no cost under an open source license for commercial use.

For purposes of these terms:

Marketed Product is intended to describe a licensee's product that has its own differentiation and marketing collateral. It may comprise one price list entry, or in some cases multiple entries (for example, to account for different localizations or delivery packaging). By way of example, in terms of Sun's product line we wouldn't consider Sun's Java Application Server to be a Marketed Product, but Sun's Java Application Server Platform Edition, Standard Edition, and Enterprise Edition are 3 Marketed Products. Sun's Java Studio Enterprise is a fourth Marketed Product.

NOTE that this information has been updated from this original proposal.



Section 3: Contributions

3.1 Please list any existing documents, specifications, or implementations that describe the technology. Please include links to the documents if they are publicly available.

Java Persistence API specification
http://jcp.org/en/jsr/detail?id=220

Bean Validation
http://jcp.org/en/jsr/detail?id=303

3.2 Explanation of how these items might be used as a starting point for the work.

The Java Persistence API as defined by JSR-220 will be the starting point for this work.

It is anticipated that the Java Persistence API will be aligned with the results of JSR-303 to provide support for validation.

Experience with existing object/relational mapping implementations and vendor extensions to the Java Persistence API as defined by JSR-220 will be considered when evaluating new functionality. For example, various existing query-by-criteria and expression-language APIs demonstrate possible approaches to be considered in developing an API for criteria-based queries.