通过 Spring Boot 应用程序对 Oracle 数据库运行 UPDATE JPA 查询时出现异常

问题描述 投票:0回答:1

嗨,我使用下面的 jpa 查询将记录更新到 oracle 数据库。但出现以下错误。

Jpa查询 @事务性 @修改(自动清除= true) @Query(value = "更新 NUMBER_POOL NP 设置 NP.STATUS=:status , NP.CHANGE_DATE=:date 其中 NP.RANGE_ID=:id 和 NP.STATUS= 15 LIMIT :limit ",nativeQuery = true) intapproveMsisdnRange(@Param("id") 整数 id, @Param("status") 整数状态, @Param("date") 日期 date,@Param("limit") int limit);

错误 } 2023-10-14 10:30:44.779 警告 17204 --- [任务2] o.h.engine.jdbc.spi.SqlExceptionHelper:SQL 错误:933,SQLState:42000 2023-10-14 10:30:44.779 错误 17204 --- [任务 2] o.h.engine.jdbc.spi.SqlExceptionHelper:ORA-00933:SQL 命令未正确结束

2023-10-14 10:30:44.818 错误 17204 --- [任务 2] .a.i.SimpleAsyncUncaughtExceptionHandler :调用异步方法时发生意外异常:public void com.sixdee.echelon.service.MsisdnManageServices.ApproveNumberPool(java.lang.整数,java.lang.Long)

org.springframework.dao.InvalidDataAccessResourceUsageException:无法执行语句; SQL [不适用];嵌套异常是 org.hibernate.exception.SQLGrammarException:无法执行语句 在 org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:259) ~[spring-orm-5.3.9.jar:5.3.9] 在 org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:233) ~[spring-orm-5.3.9.jar:5.3.9] 在 org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:551) ~[spring-orm-5.3.9.jar:5.3.9] 在 org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible


添加错误的快照。 请大家帮忙解决

通过使用 jpa 查询,需要从 Spring Boot 应用程序将记录更新到 Oracle 数据库。 下面是jpa qiery

@Transactional
@Modifying(clearAutomatically = true)
@Query(value = "update NUMBER_POOL NP set NP.STATUS=:status , NP.CHANGE_DATE=:date where NP.RANGE_ID=:id and NP.STATUS= 15 LIMIT :limit ",nativeQuery = true)
int approveMsisdnRange(@Param("id") Integer id, @Param("status") Integer status, @Param("date") Date date,@Param("limit") int limit);
java spring spring-boot spring-data-jpa oracle-sqldeveloper
1个回答
0
投票

我确信问题下面留下的评论足以解决这个问题。但我仍然决定写一个答案,因为它对于许多刚刚开始深入了解 Spring 的人来说可能很有用。

JPA 以及本机代码上的任何其他上层结构,只是为我们提供了一些简化并最大限度地减少了许多例程。但它什么也做不了,它自己做不到。因此,无论如何,第一步应该是确保您的本机代码完全正确并且可以成功执行。

完成上述所有内容后,请考虑您的目标,然后在 pl/sql Developer 或其他程序中编写可执行代码,对其进行测试,然后才将其放入存储库的查询中。

© www.soinside.com 2019 - 2024. All rights reserved.