从某些 java.sql 属性移除 Temporal 注释

OpenJPA 会持久保存类型为 java.sql.Datejava.sql.Timejava.sql.Timestamp 且包含 javax.persistence.Temporal 注释的属性的字段,而 EclipseLink 抛出异常。

该规则将扫描以查找不需要转换数据而且必须移除 Temporal 注释以避免 EclipseLink 错误的以下注释属性组合:

对于需要转换器类来更改数据库与实体对象之间的数据的情况,请参阅针对某些 java.sql 属性将 Temporal 注释替换为 Converter 规则。

在以下示例中,该规则将标记所有情况下的 @javax.persistence.Temporal 注释。

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

自动修复将删除时态注释。

   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;

有关此问题和其他 OpenJPA 到 EclipseLink 迁移问题的信息,请参阅 OpenJPA to EclipseLink JPA Migration: Mappings 指南。