EclipseLink/Development/JPA 2.0/standard properties
JPA 2.0: Standardized Properties
|Feb 2, 2009||dclarke||Initial feature template|
In JPA 2.0 the specification has defined standard persistence unit properties for JDBC setting. These properties will need to be supported
See JPA 2.0 PR section 220.127.116.11 (previously ED 18.104.22.168) for details.
- Java EE and SE Properties
- javax.persistence.query.timeout — value in seconds for query timeout
- Java SE Properties
- javax.persistence.jdbc.driver — fully qualified name of the driver class
- javax.persistence.jdbc.url — driver-specific URL
- javax.persistence.jdbc.user — username used by database connection
- javax.persistence.jdbc.password — password for database connection validation
- javax.persistence.lock.timeout — value in milliseconds for pessimistic lock timeout
- javax.persistence.validation.group.pre-persist— groups that are targeted for validation upon the pre-persist event (overrides the default behavior).
- javax.persistence.validation.group.pre-update— groups that are targeted for validation upon the pre-update event (overrides the default behavior).
- javax.persistence.validation.group.pre-remove— groups that are targeted for validation upon the pre-remove event (overrides the default behavior).
The last three validation properties are yet to be implemented.
- Develop model for testing access type settings
- approx 2 days
- Update processing
- approx 2 days
- Support using new standard property names
- Support using existing eclipselink.jdbc properties as completely interchangeable with standard ones
- Add these properties to EntityManagerFactory.getSupportedProperties() and EntityManager.getSupportedProperties()
'javax.persistence.query.Timeout' once set in persistence.xml, its value is retrieved in EntityManagerSetUpImpl class and is stored in AbstractSession class using get() and set() methods of query Timeout. When preparing the query in DatabaseQuery class, the stored value from the AbstractSession is retrieved and is set to the query. If the user sets the query timeout using 'setHint()' , then the value set by the user overrides the persistence.xml value.
'javax.persistence.lock.timeout' is also implemented in the similar way to the query timeout.
queryTimeout is tested as follows:
Value of 'queryTimeout' is set in persistence.xml and compared with the value of query timeout in ObjectLevelReadQuery class.(both should be equal) And then set the queryTimeout using 'setHint()' and compare its value to the query Timeout in ObjectLevelReadQuery class. It overrides the existing value with the value set by the user.
- Deprecation of existing properties
- Backwards compatibility?
- Forward Migration?
- When should we finally remove the eclipselink.* properties?