Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
EclipseLink/Development/JPA 2.0/entitymanager updates
Contents
Updated EntityManager / Query APIs
JPA 2.0 Root | Enhancement Request
Issue Summary
In JPA 2.0 the specification extends EntityManager and Query APIs. New APIs have been added for locking, getting supported properties and getting the owning Entity Manager Factory.
A new operation 'clear' was also added including a new Cascade Type. Calling clear on an Entity allows the user to remove an Entity and cascaded related entities from the persistence context. Effectively an unregister call.
See JPA 2.0 ED section 3.1.1 and 3.2.6 for details.
General Solution
This feature requires adding support to EntityManager and Query to allow a user to supply new LockModeTypes and comply with the specification defined behaviour. Pessimistic Locking and Optimistic Locking LockModesTypes will be covered. Optimistic Lock Modes will be a straight translation of existing modes. Pessimistic Lock Modes will require pessimistic locking support be added to the EntityManager and Query.
Open Issues
Will Target table mappings (uni-directional OneToMany, ElementCollections) require that target rows also be locked?
Important Notes
- Pessimistically locked object with version must still have version updated when entity is updated.
Work Required
- Develop model for testing access type settings
- approx 2 days
- Update Processing to process entire table
- approx 2 days - optimistic modes
- approx 3 days - pessimistic modes