When IDM JPA annotations are placed on entity fields, PicketLink uses reflection to set the fields directly. This bypasses EclipseLink's change detection when entity classes are weaved, which effectively makes it impossible to update anything in the database.
I'm not sure if this is a bug or not. If it's not a bug, then the PicketLink documentation needs a big warning right at the beginning of chapter 8 saying that if you're using EclipseLink (and probably any other JPA implementation that performs bytecode enchancement), you MUST place the IDM JPA annotations on methods.
|