【发布时间】:2018-06-26 03:41:33
【问题描述】:
我正在尝试在 spring 存储库类中按日期查询,但它不起作用。它在本地 h2 数据库中工作正常,但在 Oracle 数据库中不起作用。
在控制器类中:-
@GetMapping(produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<List<OrderLine>> getOrderDetails(@RequestParam("headerSummaryId") Long headerSummaryId,
@RequestParam(value = "eventMonth",
required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate eventMonth) {
List<OrderLine> od = orderLineService.getOrderDetails(headerSummaryId, Optional.ofNullable(eventMonth));
return ResponseEntity.ok().body(od);
}
在服务类中:-
@Override
public List<OrderLine> getOrderDetails(Long headerSummaryId, Optional<LocalDate> eventMonth) {
List<OrderLine> olList = new ArrayList<>();
olList = orderLineSummaryRepo.findByHeaderSummaryIdAndEventMonthAndVisibleFlag(headerSummaryId,
eventMonth.get(), true);
return olList;
}
在存储库类中:-
List<OrderLine> findByHeaderSummaryIdAndEventMonthAndVisibleFlag(Long headerSummaryId, LocalDate eventMonth,
Boolean visibleFlag);
实体类中事件月份的日期类型为LocalDate。 我使用的是 org.eclipse.persistence.jpa 2.6.4 版。
【问题讨论】:
-
怎么不工作?查询是否失败,或返回意外结果?
-
查询没有失败。它无法检索任何数据(提供了正确的参数)。查询返回空值。
-
查询的 where 子句是 WHERE (((HEADER_SUMMARY_ID = ?) AND (EVENT_MONTH = ?)) AND (IS_VISIBLE_FLAG = ?)) @PaulNUK
标签: java spring oracle jpa-2.0 localdate