Aktualisieren der JPA-Entität mit Reflektion funktioniert nicht?

Ich habe eine Entität, die ungefähr so ​​aussieht: (Ich programmiere auf der Webseite und entschuldige mich für etwaige Fehler.)

@Entity
public class Entity {
    @Id
    private Long id;
    private String field;

    // Insert getters and setters here...
}

Ich versuche es mit Reflektion zu manipulieren:

Long id = 1;

Entity entity = myDao.getEntity(id);

entity.setField("set directly");

Field[] fields = entity.getClass().getDeclaredFields();

for (Field f : fields) {
    if (f.getName().equals("field")) {
        f.setAccessible(true);
        f.set(entity, "set using reflection");
        f.setAccessible(false);
    }
}

System.out.println(entity.getField());

Dieses Programm druckt "set using reflection". In der Datenbank wird der mit Reflection festgelegte Wert jedoch nicht aktualisiert:

SELECT * FROM ENTITY WHERE ID = 1
ID     FIELD
1      set directly

Das ist merkwürdig. Ich könnte schwören, dass das früher funktioniert hat - aber jetzt ist es nicht mehr. Ist es wirklich so, dass Sie Entitäten nicht mit Reflektion manipulieren können?

Ich verwende EclipseLink 1.1.1, wenn das wichtig ist.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage