Temporal-Annotation für einige java.sql-Attribute entfernen

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:

In 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.