java - 尝试使用 TO_TIMESTAMP 函数运行本机查询时,Spring JPA 存储库抛出异常
问题描述
当我在 sqldeveloper 中运行以下更新查询时,它可以正常工作并更新表的指定列,但是,当我在 Spring Boot 中使用相同的查询时,它会引发异常。Java版本:jdk1.8.0_171 Spring版本:2.3.3.RELEASE Sql Developer版本:18.4.0.376
sqldeveloper 中使用的查询是:
Update ETL_EXTRACT_JOB_DETAILS set LAST_EXTRACT_DT = TO_TIMESTAMP('11-NOV-20 21:26:00.00','DD-MON-YY HH24:MI:SS.FF') where TENANT_ID = 'c1' and JOB_ID = '2011051116'
在扩展 JpaRepository 的存储库类中使用的查询是:
@Modifying
@Query(value= "UPDATE ETL_EXTRACT_JOB_DETAILS SET LAST_EXTRACT_DT = TO_TIMESTAMP(?1,'DD-MON-YYYY HH24:MI:SS.FF') WHERE TENANT_ID = ?2 and JOB_ID = ?3", nativeQuery = true)
int setLastExtractDateFor(String lastExtractDate, String TenantId, String jobId);
用于 setLastExtractDateFor 中的上述参数的值:lastExtractDat = "11-NOV-20 21:26:00.00", jobId = "2011051116", TenantId = "c1"
java抛出的异常是:
[org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:403), org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:257), org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:528), org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61), org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242), org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:153), org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186), org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:149), org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186), org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:95), org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186), org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212), com.sun.proxy.$Proxy3937.setLastExtractDateFor(Unknown Source), oracle.apps.bi.etl.services.service.impl.EtlSchemaService.updateLastExtractDateFor(EtlSchemaService.java:366),
解决方案
推荐阅读
- node.js - 通过在 Mongodb 中应用条件使用 $find 查询嵌套对象
- python - 认知面部 API Python 3.5。坏形象
- c# - 在 linux 上使用带有 dotnet core 的 Jenkins SonarQube MSBuild 插件
- quartz-scheduler - QuartzScheduler 触发器问题
- windows - Kubernetes LoadBalancer 没有响应?(适用于 Windows 的 Docker)
- sql - 我想将最近 30 天的销售和 30 到 90 天的销售加上更多的权重 (1.5) 到最后 30 天的销售
- c++ - c ++重复N次迭代
- python - 亚马逊网络服务:使用python套接字IP地址设置与本地机器的服务器-客户端连接
- angular - 带有 NGRX 商店的 Angular 组件库项目
- git - 如何使用 git ?当你不够聪明时