java - 如何通过带有 nativeQuery 的 EclipseLink 调用带有日期参数的 Oracle 函数?
问题描述
我有一个下面的代码,我传递了四个参数,第二个是 Localdate。但它给了我无效的标识符异常,在 DB 端 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 参数传递给查询?
解决方案
推荐阅读
- php - 我如何计算laravel中特定id的总金额?
- reactjs - 如何删除视频上的状态栏和重叠图标?
- ruby-on-rails - 无法正确呈现 rails 关联中的编辑和删除按钮
- javascript - 使用基于 PC 的外部数据库在 Android 上测试 Cordova 应用程序
- go - Golang os.使用嵌套目录创建路径
- azure - 架构问题 - Azure 服务总线和消息顺序保证
- spring - 为什么Spring的RestTemplate还有setter,Spring也提供了RestTemplateBuilder类来构建RestTemplate
- python - 在 Pandas groupby 中的行中添加新列
- angular - 无法在子组件中共享/触发父组件的点击事件
- java - 如何将反应端口更改为 API 端口?