[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[eclipselink-dev] JPA Entity Manager Backup Clone Problem By Using SDO
|
Hi EclipseLink Team,
In our SDO
service project we some problems to use JPA with SDO class
mapping.
Using
SDO classes to retrieve database data by JPA causes wrong values for related
objects (mapped by ONE-TO-ONE or ONE-TO-MANY).
We have created an example eclipse project 'AddressBook-JPA-SDO' to
simulate / demonstrate the problem / fault.
There
are three entities: Person, Address and Phone. The Person entity
contains the attribute address (Address.class mapped by
one-to-one).
The Phone entity is related to Person as the attribute
phoneList (Phone.class mapped by one-to-many). All entity
classes are implemented as SDODataObject.
When
we try to read the data by the root entity Person, the related Address
object is retuned by null (finally). Also the Phone list object is
corrupted. The list contains the same amount of objects like they are stored in
the database, but the their class type isn't correct. The contend of the
Phone list is set to the type Person.
By debugging the EclipseLink data
load process, we recognized that all backup cloning for
one-to-one and one-to-many related attributes retuning the clone
object of the working copy (previous clone). This is designed the
method buildBackupCloneForPartObject() in the classes
org.eclipse.persistence.mappings.ObjectReferenceMapping.
If we
set the Person descriptor to read-_only_=true, the backup clone will not be
created and the data of Person, Address and Phone (list) will be returned/loaded
correctly.
But
this prevents update and create processing of the Person, Address and
Phone by the entity manager.
If we
use POJOs everything works fine (see project 'AddressBook-Session-XML'. But we
have to implement SDO objects on our service project and won't design a special
layer / process to merge POJO data with SDO data.
Do You have an idea / suggestion to solve this problem?
Do You think SDO object
persistency problem just a fixable issue or there are some fundamental design
challenges?
Kind
regards,
Andrei Shakirin, Robert
Lalyko
p.s:
the attachment contents :
-
AddressBook(Derby-Database).zip // Apache Derby Database 10.2.4
contains test data of Person, Address, Phone
-
AddressBook(JPA-Session-XML).zip // Eclipse JPA Project using POJOs (EclipseLink
project.xml mapping)
- AddressBook(JPA-SDO).zip //
Eclipse JPA Project using SDO (EclipseLink project.xml
mapping)
Versions:
- Eclipse Ganymede (3.4) (incl.
Dali)
- EclipseLink 1.1-SNAPSHOT
(2009-01-09)
Attachment:
AddressBook.zip
Description: AddressBook.zip