首页 / JAVA / java-如何使用单引号设置查询参数
java-如何使用单引号设置查询参数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-如何使用单引号设置查询参数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1787字,纯文字阅读大概需要3分钟。
内容图文
![java-如何使用单引号设置查询参数](/upload/InfoBanner/zyjiaocheng/693/68de98902056433da6ae60d7a33a1a1f.jpg)
我正在使用oracle数据库,我需要通过jpa存储库运行更新查询,这是我尝试执行的查询.
@Transactional(propagation = Propagation.REQUIRES_NEW)
@Modifying
@Query(
value = "UPDATE transactionlog SET transactionstatus= :ps,startedat = CURRENT_TIMESTAMP, readytoprocessat= (CURRENT_TIMESTAMP+ interval ':to' second) WHERE logid IN (:li) ",
nativeQuery = true)
public Integer reserve(@Param("ps") short processingStatus, @Param("li") List<Integer> logIdList, @Param("to") int timeOut);
但是这个例外
org.springframework.dao.InvalidDataAccessApiUsageException: Parameter with that name [to] did not exist; nested exception is java.lang.IllegalArgumentException: Parameter with that name [to] did not exist
但是,如果我按以下方式更改此方法,则效果很好.
@Transactional(propagation = Propagation.REQUIRES_NEW)
@Modifying
@Query(
value = "UPDATE transactionlog SET transactionstatus= :ps,startedat = CURRENT_TIMESTAMP, readytoprocessat= (CURRENT_TIMESTAMP+ interval '5' second) WHERE logid IN (:li) ",
nativeQuery = true)
public Integer reserve(@Param("ps") short processingStatus, @Param("li") List<Integer> logIdList);
任何想法?
解决方法:
名称为[to]的参数不存在,因为您将:to放在了单引号之间.使用:to而不是’:to’.
话虽如此,这还是行不通的.我遇到了非常类似的问题,几个小时后终于找到了一个解决方案,提示我为in answer here.由于某种原因,当间隔开始起作用时,参数注入无法按您期望的那样工作.
考虑以上链接的结论-我认为这应该可行:
@Transactional(propagation = Propagation.REQUIRES_NEW)
@Modifying
@Query(value = "UPDATE transactionlog SET transactionstatus= :ps,
startedat = CURRENT_TIMESTAMP,
readytoprocessat= (CURRENT_TIMESTAMP + (( :to ) || 'second')\\:\\:interval)
WHERE logid IN (:li) ",nativeQuery = true)
public Integer reserve(@Param("ps") short processingStatus, @Param("li") List<Integer> logIdList, @Param("to") int timeOut);
内容总结
以上是互联网集市为您收集整理的java-如何使用单引号设置查询参数全部内容,希望文章能够帮你解决java-如何使用单引号设置查询参数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。