【问题标题】:IN clause inside an update query, using JPQL更新查询中的 IN 子句,使用 JPQL
【发布时间】:2019-03-01 10:54:44
【问题描述】:

我正在尝试执行此查询:

    @Modifying
@Transactional
@Query(value = "UPDATE SpreadsheetRegisters r SET r.buApprobation =1 WHERE r.idRegister IN (:list)")
public void updateExpiredRegistries(@Param("list") List<BigDecimal> expiredRegistriesIds);

基本上,如果她的 id 在该列表中,我会尝试更新实体。

这是我得到的例外:

o.h.engine.jdbc.spi.SqlExceptionHelper   : ORA-00936: missing expression

org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute statement; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not execute statement

看来我的查询是错误的,但我不知道在哪里... 任何人都可以帮助我吗? 谢谢

【问题讨论】:

  • 你能展示你的实体SpreadsheetRegisters吗?

标签: java spring jpql


【解决方案1】:

感谢大家的支持。几个小时后,我发现了错误。查询是对的,但我的列表没有,她是空的,因此数据库无法完成他的工作。

JPA: 1 我:0

【讨论】:

    【解决方案2】:

    当您使用查询注释时,您的实体类必须称为“SpreadsheetRegisters”。但是,如果你想使用数据库表名而不是实体类名,你可以将 @Query 的 native 属性设置为 true

    括号留着没关系,留着。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-08
      • 2014-08-01
      • 2018-06-18
      • 1970-01-01
      • 2015-10-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多