I was able to reproduce this issue using your modified quickstart. It helped a lot to understand what is happening.
EclipseLink does weaving and changes the entity class byte-code. It changes the name of getters methods and forces PL to set/get the value directly from the field. And not using its setter and getter. When using fields directly, changes are not tracked by EclipseLink. If you want to track changes having weaving enabled you must use field's setter.
There is a property that you can use in *META-INF/persistence.xml* to disable weaving for change tracking:
{code : xml} <property name="eclipselink.weaving.changetracking" value="false"/> {code}
If you set this property, everything should work as expected.
|