Înlăturaţi adnotarea Temporal pentru unele atribute java.sql

OpenJPA persistă câmpurile atributelor de tipul java.sql.Date, java.sql.Time sau java.sql.Timestamp care au o adnotare javax.persistence.Temporal, în care EclipseLink aruncă o excepţie.

Această regulă scanează pentru următoarele combinaţii adnotare-atribut unde datele nu are nevoie să fie convertite şi adnotarea Temporal trebuie să fie înlăturată pentru a evita o eroare EclipseLink:

Pentru cazurile în care un convertor clasă este necesar pentru a modifica datele între baza de date şi obiectul entitate, vedeţi regula Înlocuire adnotare Temporal cu un convertor pentru unele atribute java.sql.

În următorul exemplu, această regulă semnalează adnotarea @javax.persistence.Temporal în toate cazurile.

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

O corecție automată va elimina adnotările temporale.

   privat java.sql.Date dateDate;
   
   privat java.sql.Date dateTime;
   
   privat java.sql.Time timeDate;
   
   privat java.sql.Time timeTime;
   
   privat java.sql.Time timeTimestamp;
   
   privat java.sql.Timestamp timestampTimestamp;

Pentru informaţii despre această problemă şi alte probleme legate de migrarea OpenJPA la EclipseLink, vedeţi ghidul OpenJPA to EclipseLink JPA Migration: Mappings.