Объект класса oracle.sql.TIMESTAMPTZ из сопоставления не может быть преобразован в класс java.util.Date. - PullRequest
0 голосов
/ 27 июня 2019

Я столкнулся с проблемой в eclipselink с TIMESTAMPTZ.В таблице есть столбец, в котором есть метка времени и часовой пояс.Когда я запускаю свою программу, я получаю исключение.

Я уже пробовал все в stackOverflow с похожими проблемами и даже по ссылке ниже.

https://www.eclipse.org/forums/index.php/t/443917/


Query q = em.createNativeQuery("SELECT * FROM MY_Schema.MyTable MT WHERE MT.START_DT = (SELECT MAX(START_DT) FROM MY_Schema.MyTable)",MyTable.class);

@Entity
@Table(name = "MyTable", schema = "MY_Schema")
public class MyTable implements Serializable {
    @EmbeddedId
    private MyTableId id;

@Embeddable
public class MyTableId implements Serializable {

  @Temporal(TemporalType.TIMESTAMP)
  @Column(name = "END_DT")
  private Calendar endTime;

  @Temporal(TemporalType.TIMESTAMP)
  @Column(name = "START_DT")
  private Calendar startTime;

Сообщение об ошибке:

5943 [Default Executor-thread-32] ERROR com....MyClass  - 
javax.persistence.PersistenceException: Exception [EclipseLink-3002]
(Eclipse Persistence Services - 2.6.8.WAS-v20181218-0accd7f):
org.eclipse.persistence.exceptions.ConversionException Exception
Description: The object [oracle.sql.TIMESTAMPTZ@d1f0d927], of class
[class oracle.sql.TIMESTAMPTZ], from mapping
[org.eclipse.persistence.mappings.DirectToFieldMapping[startTime--Y_Schema.MyTable.START_DT]]
with descriptor [RelationalDescriptor(com.....MyTableId -->
[DatabaseTable(MY_Schema.MyTable)])], could not be converted to [class
java.util.Date].    at
org.eclipse.persistence.internal.jpa.QueryImpl.getSingleResult(QueryImpl.java:551)
...