Hi,
I'm using payare 5.201 which uses eclipselink 2.7.
Weaving is enabled by default and I do not have any @ChangeTracking annotations in place which means eclipselink will choose these at runtime.
Now I have a problem where for some reason an update statement is missing a field.
I don't understand why but when I set
@ChangeTracking(ChangeTrackingType.ATTRIBUTE)
on the related table then the problem disappears.
The related table also has some relations with eager fetchtype.
When I set the fetchtype of those relations to LAZY it also works again.
My conclusion is that the related table has a different ChangeTrackingType.
I'm assuming this happened because of the eager fetchtype I had in place and eclipselink chose a different ChangeTrackingType.
Questions:
- how can I runtime 'ask' the system which ChangeTrackingType
is used for a table.
- are there debug settings where I can let eclipselink log these values per table?
- how can a different ChangeTrackingType cause fields to be missed (other fields were
updated ok)
- I could reproduce this in a single thread
- I confirmed that the entity object was registered to the entity manager
- I confirmed that the value in the database was different
- I confirmed that when leaving the method the value was changed
- One thing to mention here is that this code executed in a @Asynchronous method
best regards,
Hans