错误 } 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);
我确信问题下面留下的评论足以解决这个问题。但我仍然决定写一个答案,因为它对于许多刚刚开始深入了解 Spring 的人来说可能很有用。
JPA 以及本机代码上的任何其他上层结构,只是为我们提供了一些简化并最大限度地减少了许多例程。但它什么也做不了,它自己做不到。因此,无论如何,第一步应该是确保您的本机代码完全正确并且可以成功执行。
完成上述所有内容后,请考虑您的目标,然后在 pl/sql Developer 或其他程序中编写可执行代码,对其进行测试,然后才将其放入存储库的查询中。