Как вызвать функцию Oracle с параметром даты через EclipseLink с nativeQuery? - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть код ниже, который я передаю четыре параметра, и второй является Localdate. Но это дает мне недопустимое исключение идентификатора, на стороне БД ORA-00904

final EntityManager entityManager = factory.createEntityManager();

    final LocalDate applicationDate = LocalDate.of(consignmentRequest.getYear(), consignmentRequest.getMonth(), consignmentRequest.getDay());

    final String applicationDateParameter = applicationDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
    final String businessPartnerId = consignmentRequest.getBusinessPartnerId();
    final BigDecimal creditAmount = consignmentRequest.getCreditAmount();
    final Integer queryId = consignmentRequest.getEgmQueryId();


    final String FUNCTION_CALL_QUERY = "SELECT FN_VEHICLE_CONTROL(?1,?2,?3,?4) FROM DUAL";


    final BigDecimal value = (BigDecimal) entityManager
            .createNativeQuery(FUNCTION_CALL_QUERY)
            .setParameter(1, businessPartnerId)
            .setParameter(2, applicationDateParameter)
            .setParameter(3, creditAmount)
            .setParameter(4, queryId)
            .getSingleResult();

    entityManager.close();

Ниже также моя Oracle сигнатура функции,

CREATE OR REPLACE FUNCTION GLOBAL.FN_VEHICLE_CONTROL (
   seller      VARCHAR2,
   myDate       DATE,
   amount     NUMBER,
   queryId    NUMBER)
   RETURN NUMBER

Как передать параметр Localdate в запрос?

...