SQLSyntaxErrorException: ORA-00932: несовместимые типы данных: ожидается, что DATE получил BINARY

Nina спросил: 11 марта 2019 в 07:25 в: java

Я был бы признателен за помощь в этом исключении.

Я провел некоторое исследование этой ошибки, но не смог найти решение. Я использую 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.ero.ver.jpg .processError (T4CTTIoer.java:396) oracle.jdbc.driver.T4C8Oall.processError (T4C8Oall.java:879) oracle.jdbc.driver.T4CTTIfun.receive (T4CTTIfun.java:450) oracle.jdbc.driver.T4CTTIfun.doRPC (T4CTTIfun.java:192)oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207)oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement .java: 884) oracle.jdbc.driver.OracleStatement.executeMaybeDescribe (OracleStatement.java:1167) oracle.jdbc.driver.OracleStat ement.doExecuteWithTimeout (OracleStatement.java:1289) oracle.jdbc.driver.OraclePreparedStatement.executeInternal (OraclePreparedStatement.java:3584) oracle.jdbc.driver.OraclePreparedStatement.executeQuery (OraclePreparedStatement.java:3628) oracle.jdbc.driver.OraclePreparedStatementWrapper. ExecuteQuery (OraclePreparedStatementWrapper.java:1493) org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.executeQuery (WrappedPreparedStatement.java:462) org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract (ResultSetReturnImpl.java:79) орг. hibernate.loader.Loader.getResultSet (Loader.java:2090) org.hibernate.loader.Loader.executeQueryStatement (Loader.java:1887) org.hibernate.loader.Loader.executeQueryStatement (Loader.java:1866) org.hibernate. loader.Loader.doQuery (Loader.java:905) org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections (Loader.java:347) org.hibernate.loader.Loader.doList (Loader.java:2578) org.hibernate.loader. Loader.doList (Loader.java:2564) org.hibernate.loader.Loader.listIgnore QueryCache (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:198) org.hibernate.internal.SessionImpl.list (SessionImpl.java:1230) орг. hibernate.internal.QueryImpl.list (QueryImpl.java:101) org.hibernate.ejb.QueryImpl.getResultList (QueryImpl.java:268) my.company.path.MyDao.findByDate (MyDaoDao.java:21)

Заранее большое спасибо за любые подсказки!

0 ответов