OpenJPA сохраняет поля атрибутов типа java.sql.Date,
java.sql.Time или java.sql.Timestamp, имеющих
аннотацию javax.persistence.Temporal, а EclipseLink генерирует
исключительную ситуацию.
Это правило находит следующие сочетания аннотации и атрибута, для которых не
требуется обеспечивать преобразование данных, но нужно удалить аннотацию
Temporal, чтобы избежать ошибки EclipseLink:
javax.persistence.Temporal(TemporalType.DATE) в атрибуте java.sql.Datejavax.persistence.Temporal(TemporalType.TIME) в атрибуте java.sql.Datejavax.persistence.Temporal(TemporalType.DATE) в атрибуте java.sql.Timejavax.persistence.Temporal(TemporalType.TIME) в атрибуте java.sql.Timejavax.persistence.Temporal(TemporalType.TIMESTAMP) в java.sql.Time
javax.persistence.Temporal(TemporalType.TIMESTAMP) в java.sql.TimestampattributeДля тех тех случаев, когда требуется класс преобразователя для преобразования данных из формата базы данных в объект сущности и наоборот, предусмотрено правило Заменить аннотацию Temporal на Converter в некоторых атрибутах java.sql.
В приведенном ниже примере правило отметит все вхождения аннотации @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 в EclipseLink JPA: преобразования.