« Return to Thread: Can I use eclipselink to get the differences between two objects?
Magnus Heino wrote:This seems to be impossible since
ContainerPolicy.compareCollectionsForChange that will be called by
DeferredChangeDetectionPolicy to compare collections is using a
IdentityHashMap. Correct?
/Magnus
>
On Tue, Jun 10, 2008 at 9:11 PM, Magnus Heino <magnus@filur.org> wrote:
>
> If you wish to go under the covers a little their is an API,
>> DeferredChangeDetectionPolicy.createObjectChangeSetThroughComparison(),
>> that
>> will return an ObjectChangeSet listing the changes between the two
>> objects.
>>
>
> Is it possible to make it consider @OneToMany mappings also?
>
> It will report a difference no matter what I put into the @OneToMany set,
> even if the objects themself are equal if passed into the
> createObjectChangeSetThroughComparison method.
>
> I would like to work with a object graph rather than with individual
> objects.
>
> Under the covers api's are not a problem.
>
> I currently do it like this:
>
> @Autowired
> private JpaEntityManager entityManager;
>
> private final ObjectChangePolicy objectChangePolicy = new
> DeferredChangeDetectionPolicy();
>
> public ObjectChangeSet compare(final AbstractEntity original, final
> AbstractEntity copy) {
> ObjectChangeSet objectChangeSet =
> this.objectChangePolicy.createObjectChangeSetThroughComparison(original,
> copy,
> (UnitOfWorkChangeSet)
> this.entityManager.getUnitOfWork().getCurrentChanges(), false,
> (AbstractSession) this.entityManager
> .getActiveSession(),
> this.entityManager.getActiveSession().getDescriptor(original.getClass()));
>
> return objectChangeSet;
> }
>
> Thanks!
>
> /Magnus
>
>>
>
>>
>>
>> Magnus Heino wrote:
>> >
>> > Hi.
>> >
>> > Lets say I have
>> >
>> > Foo foo = new Foo(2);
>> > Foo foo2 = new Foo(3);
>> >
>> > Foo is an @Entity mapped by eclipselink.
>> >
>> > Can I somehow use components of eclipselink to compare foo and foo2, and
>> > get
>> > a list of differences?
>> >
>> > --
>> >
>> > /Magnus Heino
>> >
« Return to Thread: Can I use eclipselink to get the differences between two objects?
| Free embeddable forum powered by Nabble | Forum Help |