2015-02-18 2 views
0

У меня есть запрос, где я прохожу входы диапазона датJPA запрос с диапазоном дат ввода

@Query(value = "SELECT ord.purchaseOrderNumber,ord.salesOrderNumber,ord.quoteNumber" 
      + " FROM Order ord WHERE ord.purchaseOrderNumber :poNumber and ord.receiveDate between to_date(:dateFrom,'MM/DD/YYYY') AND to_date(:dateTo,'MM/DD/YYYY') 

так я передаю действительный номер к: poNumber и передавая нулевые значения для даты заполнителей и запрос не возвращает никаких значений, где она должна возвращать 1 строку на основе: poNumber, так как я обрабатывать эти входные значения NULL для даты

ответ

0

Я полагаю вам нужен оператор OR между ord.purchaseOrderNumber и ord.receiveDate

@Query(value = "SELECT ord.purchaseOrderNumber,ord.salesOrderNumber,ord.quoteNumber" 

       + " FROM Order ord WHERE ord.purchaseOrderNumber :poNumber OR (ord.receiveDate between to_date(:dateFrom,'MM/DD/YYYY') AND to_date(:dateTo,'MM/DD/YYYY')) 
+0

Я обновил запрос, поскольку я пропустил И – gnanesh

+0

У вас есть значения null для dateFrom в вас DB? если не считать использование [CriteriaAPI] (http://docs.oracle.com/javaee/6/tutorial/doc/gjitv.html), так что вы можете исключить сравнение дат для нулевых значений этого – iamiddy

+0

, у нас не будет никакого значения но это функция поиска, кстати, я использую spring-data jpa в любом случае, как мы исправим выше, не перейдя к CriteriaAPI – gnanesh

Смежные вопросы