Warum wird ein JPA - @PreUpdate-annotierte Methode aufgerufen werden, während eine Abfrage?

Habe ich eine benannte Abfrage, gibt eine Collection von Entitäten.

Diese Personen haben eine @PreUpdate-annotierte Methode auf. Diese Methode wird aufgerufen, während query.getResultList(). Weil dieses, die Entität, die geändert wird, innerhalb der Persistenz-Kontext, was bedeutet, dass nach der Transaktion ein commit, dass die Entität in die Datenbank zurückgeschrieben.

Warum ist das so? Die JPA-2.0-Spezifikation erwähnt nicht ausdrücklich, dass @PreUpdate sollte aufgerufen werden, indem Sie die Ausführung einer Abfrage.

  • Ich sehe dieses Verhalten, übrigens, in EclipseLink 2.3.2.v20111125-r10461 im Falle es ist ein schwerwiegender Fehler in dieser Implementierung nur.
  • Ich lief in das gleiche problem, aber mit Hibernate. So wie es scheint, es ist keine Implementierung Problem, sondern ein erwartetes Verhalten. Irgendwie scheint dies durch einige automatische Spülung, die durch JTA.
InformationsquelleAutor Laird Nelson | 2012-08-23
Schreibe einen Kommentar