JPA/Eclipselink: JPQL Update des Version-Felds

Will man über eine JPA-Query bei einer Entity auch das Version-Feld manuell aktualisieren, funktioniert das bei Eclipselink nicht (getestet mit Version 2.1.3).

Nehmen wir mal dieses einfache Entity:

@javax.persistence.Entity
@javax.persistence.Table(name = "FOO")
public class Foo {
 @javax.persistence.Id
 private Long id;
 @javax.persistence.Version
 private Integer version;
 private String value;

 ...
}

Eine Update-Query in JPQL, welche die Felder value und version aktualisieren, würde wie folgt aussehen:

UPDATE Foo f SET f.value = :value, f.version = :version

Da der Standard nicht vorsieht, dass in diesem Fall die Version aktualisiert wird, muss laut Eclipselink-Doku das Feld in der Query explizit gesetzt werden. Leider funktioniert das bei Eclipselink nur beim ersten Update - danach wird immer wieder das alte Datum gesetzt.

Sofern das Ganze aber mit einer NativeQuery durchgeführt wird, gibt es keine Probleme.

UPDATE FOO f SET f.value = ?value, f.version = ?version