[
https://issues.apache.org/jira/browse/OPENJPA-843?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Dinkar Rao updated OPENJPA-843:
-------------------------------
Attachment: OPENJPA-843.patch
In the patch, the call to updateIndicators() is made only under these
conditions:
- any non-relational field of the entity is modified
- any relationships owned by the entity are modified.
The flag (updateIndicators) to decide whether versions/discriminators should be
modified is passed in recursively to update(), to take care of the case where
the version field is in a superclass whose fields have not been modified, but
the subclass' fields have been modified.
> Unnecessary version update on inverse-side of a 1-m relationship
> ----------------------------------------------------------------
>
> Key: OPENJPA-843
> URL: https://issues.apache.org/jira/browse/OPENJPA-843
> Project: OpenJPA
> Issue Type: Bug
> Components: jdbc
> Affects Versions: 2.0.0
> Reporter: Dinkar Rao
> Priority: Minor
> Attachments: OPENJPA-843.patch
>
>
> A Customer has 1-m relationship to Inventory:
> @Entity
> Customer {
> ....
> @OneToMany(mappedBy="customer")
> private Collection<Inventory> inventories = new ArrayList<Inventory>();
> ....
> }
> @Entity
> Inventory {
> ...
> @ManyToOne
> private Customer customer;
> ...
> }
> When an Inventory instance is modified, its version is bumped as expected.
> However, when an Inventory is added or deleted from the Inventory list in
> Customer, the Customer instance version is unnecessarily bumped up. According
> to section 3.4.2 of the 1.0 spec,
> "The version attribute is updated by the persistence provider runtime when
> the object is
> written to the database. All non-relationship fields and properties and all
> relationships
> owned by the entity are included in version checks."
> When additions or deletions are made to the Inventory list of Customer, the
> version of the Customer instance should remain unchanged. As the
> inverse-side, Customer does not own the Inventory that is added/deleted.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.