Remover a anotação Temporal para alguns atributos java.sql

O OpenJPA persiste os campos dos atributos do tipo java.sql.Date, java.sql.Time, ou java.sql.Timestamp que possuem uma anotaçãojavax.persistence.Temporal, enquanto o EclipseLink lança uma exceção.

Esta regra faz a varredura para procurar as combinações de anotação-atributo a seguir nas quais os dados não precisam ser convertidos e a anotação Temporal deve ser removida para evitar um erro EclipseLink:

Para casos nos quais uma classe conversora é necessária para alterar os dados entre o banco de dados e o objeto de entidade, consulte a regra Substituir anotação Temporal com um Conversor para alguns atributos java.sql.

No exemplo a seguir, esta regra sinaliza a anotação @javax.persistence.Temporal em todos os 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;

A correção rápida para esta regra remove as anotações 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;

Para obter informações sobre esse problema e outros problemas de migração do OpenJPA para o EclipseLink, consulte o guia Migração do OpenJPA para o EclipseLink JPA: mapeamentos.