Буду признателен за помощь в этом исключении.
Я провел некоторое исследование этой ошибки, но не смог найти решение.Я использую JPA с hibernate и получаю эту ошибку при выполнении запроса.
Очевидно, что я чего-то не понимаю в java LocalDate и oracle Date.: (
Это объект:
@Entity
@Table(name = "MY_TABLE")
public class MyObject implements Serializable {
private static final long serialVersionUID = 1731972128723930612L;
@Id
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "OTHER_ID", nullable = false)
private OtherObject otherObject;
@Column(name = "MY_DATE", columnDefinition="DATE", nullable = false)
// @Convert(converter = LocalDateSQLDateConverter.class)
// @Convert(converter = LocalDateConverter.class)
private LocalDate date;
Как вы можете видеть, я пытался использовать конвертеры, которые конвертируют LocalDate в java.util.Date или java.sql.Date и наоборот -оба, к сожалению, не помогли.
Это запрос:
public class MyDao extends BaseDao {
public void save(MyObject object) {
entityManager.persist(object);
}
public MyObject findByDate(LocalDate date) {
TypedQuery<MyObject> query = entityManager.createQuery("SELECT w from MyObject w"
+ " where w.date = :date", MyOBject.class)
.setParameter("date", date);
return query.getResultList().stream().findFirst().orElse(null);
}
Это исключение:
java.sql.SQLSyntaxErrorException: ORA-00932:несовместимые типы данных: ожидаемая ДАТА получила БИНАРНЫЙ
oracle.jdbc.driver.T4CTTIoer.processError (T4CTTIoer.java:445) oracle.jdbc.driver.T4CTTIoer.processError (T4CTTIoer.drijj.jj_64: 39).T4C8Oall.processError (T4C8Oall.java:879)..doOALL (T4C8Oall.java:531) oracle.jdbc.driver.T4CPreparedStatement.doOall8 (T4CPreparedStatement.java:207) oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe (T4CP)(OracleStatement.java:1167) oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout (OracleStatement.java:1289) oracle.jdbc.driver.oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery (OraclePreparedStatementWrapper.java:1493) org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.ResultSetReturnImpl.java:79) org.hibernate.loader.Loader.getResultSet (Loader.java:2090) org.hibernate.loader.Loader.executeQueryStatement (Loader.java:1887) org.hibernate.loader.Loader.State ()Java: 1866) org.hibernate.loader.Loader.doQuery (Loader.java:905) org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections (Loader.java:347) org.hibernate.loader.Loader.doList (2578) org.hibernate.loader.Loader.doList (Loader.java: 2564) org.hibernate.loader.Loader.listIgnoreQueryCache (Loader.java:2394) org.hibernate.loader.Loader.list (Loader.java:2389) org.hibernate.loader.hql.QueryLoader.list (QueryLoader.Java: 495) org.hibernate.hql.internal.ast.QueryTranslatorImpl.list (QueryTranslatorImpl.java:357) org.hibernate.engine.query.spi.HQLQueryPlan.performList (HQLQueryPlan.java:19ternal.in.h.in.g.SessionImpl.list (SessionImpl.java:1230) org.hibernate.internal.QueryImpl.list (QueryImpl.java:101) org.hibernate.ejb.QueryImpl.getResultList (QueryImpl.java:268) my.companyDpath.findByDate (MyDaoDao.java:21)
Заранее большое спасибо за любые подсказки!