Usuń adnotację Temporal dla niektórych atrybutów java.sql

Produkt OpenJPA utrwala pola atrybutów typu java.sql.Date, java.sql.Time lub java.sql.Timestamp, które mają adnotację javax.persistence.Temporal, a produkt EclipseLink zgłasza wyjątek.

Ta reguła przeprowadza skanowanie pod kątem następujących kombinacji adnotacja-atrybut, w których dane nie mają być przekształcane, a adnotacja Temporal musi zostać usunięta, aby uniknąć błędu produktu EclipseLink:

W przypadkach, gdy do zmiany danych między bazą danych a obiektem jednostki jest wymagana klasa konwertera, patrz reguła Zastąp adnotację Temporal adnotacją Converter dla niektórych atrybutów java.sql.

W poniższym przykładzie ta reguła powoduje oznaczenie flagą adnotacji @javax.persistence.Temporal we wszystkich przypadkach.

   @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;

Szybka poprawka dla tej reguły usuwa adnotacje Temporal.

   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;

Informacje na ten temat oraz na temat innych problemów z migracją interfejsu OpenJPA do interfejsu EclipseLink zawiera podręcznik Migracja interfejsu JPA ze środowiska OpenJPA do EclipseLink: Odwzorowania.