Elimine la anotación temporal para algunos atributos java.sql

OpenJPA persiste los campos de atributos del tipo java.sql.Date, java.sql.Time, o java.sql.Timestamp que tienen una anotación javax.persistence.Temporal, mientras que EclipseLink lanza una excepción.

Esta regla realiza un examen en búsqueda de las combinaciones de anotación-atributo siguientes donde no es necesario convertir los datos y la anotación Temporal se debe eliminar para evitar un error EclipseLink:

Para los casos donde es necesaria una clase de conversor para cambiar los datos entre la base de datos y el objeto de entidad, consulte la regla Eliminar anotación temporal con un conversor para algunos atributos java.sql.

En el ejemplo siguiente, esta regla señala la anotación @javax.persistence.Temporal en todos los casos.

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

El arreglo rápido para esta regla elimina las anotaciones 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;

Si desea más información sobre este problema y otros problemas de migración de OpenJPA a EclipseLink, consulte la guía Migración de OpenJPA a EclipseLink JPA: Correlaciones.