一部の java.sql 属性の Temporal アノテーションを削除する

OpenJPA では、javax.persistence.Temporal アノテーションを持つ java.sql.Date 型、java.sql.Time 型、または java.sql.Timestamp 型の属性のフィールドは永続化されるのに対し、EclipseLink では例外がスローされます。

この規則は、データを変換する必要がなく、EclipseLink エラーを避けるため Temporal アノテーションを削除する必要のある、以下のアノテーションと属性の組み合わせをスキャンします。

データベースとエンティティー・オブジェクト間でデータを変更するためにコンバーター・クラスが必要となる場合については、一部の java.sql 属性で Temporal アノテーションをコンバーターに置換する規則を参照してください。

以下の例で、この規則はすべてのケースの @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;

この規則のクイック・フィックスにより、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;

この問題や、OpenJPA から EclipseLink へのマイグレーションに関するその他の問題については、 OpenJPA to EclipseLink JPA Migration: Mappings ガイドを参照してください。