OpenJPA speichert die Felder von Attributen des Typs java.sql.Date, java.sql.Time und
java.sql.Timestamp, die eine Annotation javax.persistence.Temporal haben, persistent, wohingegen EclipseLink eine Ausnahme auslöst.
Diese Regel sucht nach den folgenden Annotation-Attribut-Kombinationen, in denen Daten nicht konvertiert werden müssen und die Annotation
Temporal entfernt werden muss, um einen EclipseLink-Fehler zu verhindern:
javax.persistence.Temporal(TemporalType.DATE)
in einem Attribut java.sql.Date javax.persistence.Temporal(TemporalType.TIME)
in einem Attribut java.sql.Date javax.persistence.Temporal(TemporalType.DATE)
in einem Attribut java.sql.Time javax.persistence.Temporal(TemporalType.TIME)
in einem Attribut java.sql.Time javax.persistence.Temporal(TemporalType.TIMESTAMP)
in einem Attribut java.sql.Timejavax.persistence.Temporal(TemporalType.TIMESTAMP)
in einem Attribut java.sql.TimestampIn den Fällen, in denen eine Converter-Klasse erforderlich ist, um die Daten zwischen der Datenbank und dem Entitätsobjekt zu ändern, verwenden Sie die Regel Temporal-Annotation für einige java.sql-Attribute durch einen Converter ersetzen.
Im folgenden Beispiel markiert diese Regel die Annotation @javax.persistence.Temporal in allen Fällen.
@javax.persistence.Temporal(TemporalType)DATE) private java.sql.Date dateDate; @javax.persistence.Temporal(TemporalType.TIME) private java.sql.Date dateTime; @javax.persistence.Temporal(TemporalType.DATE) private java.sql.Time timeDate; @javax.persistence.Temporal(TemporalType.TIME) private java.sql.Time timeTime; @javax.persistence.Temporal(TemporalType.TIMESTAMP) private java.sql.Time timeTimestamp; @javax.persistence.Temporal(TemporalType.TIMESTAMP) private java.sql.Timestamp timestampTimestamp;
Bei einer automatischen Korrektur werden die zeitlichen Anmerkungen entfernt.
private java.sql.Date dateDate; private java.sql.Date dateTime; private java.sql.Time timeDate: private java.sql.Time timeTime; private java.sql.Time timeTimestamp; private java.sql.Timestamp timestampTimestamp;
Informationen zu diesem Problem und zu weiteren Problemen bei der Migration von OpenJPA auf EclipseLink finden Sie in der Veröffentlichung OpenJPA to EclipseLink JPA Migration: Mappings.