java - 当我使用 @Query 时,为方法使用命名参数

标签 java spring spring-boot jpa spring-data-jpa

我正在使用 spring-data-jpa,我想更新一些东西,我已在 PaySupplierSettleBillRepository 中将我的方法注释为

public interface PaySupplierSettleBillRepository extends JpaRepository<PaySupplierSettleBillEntity, Long>,
        JpaSpecificationExecutor<PaySupplierSettleBillEntity> {

    @Modifying
    @Query("update PaySupplierSettleBillEntity p set p.payTime=:payTime,p.paymentOrder=:paymentOrder, p.transferTime=:transferTime, p.transferBank=:transferBank, p.transferOrder=:transferOrder, p.operatorName=:operatorName, p.remark=:remark where p.orderNumber=:orderNumber")
    int updatePayInfo(PaySupplierSettleBillEntity entity);
}

我在启动时遇到以下异常

Caused by: java.lang.IllegalStateException: Using named parameters for method public abstract xxxxxx

我该如何解决这个问题?认为。

最佳答案

这不是编写带有命名参数的 @Query 的方式。请查看此处 Spring 文档中的示例 ( https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.named-parameters )。

如果你想提供一个对象作为参数,你可以这样做。

@Query("UPDATE Entity E SET E.name = :#{#entity.name}")
public void updateEntity(@Param("entity") Entity entity);

关于java - 当我使用 @Query 时,为方法使用命名参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56053158/

相关文章:

java - 并发 SQS 队列监听器

java - 如何在没有身份验证的情况下公开 Swagger UI?

java - 将 Java BufferedImage 发送到 Android 位图

spring - 我可以编写一个使用 Autowiring Spring bean 的 Kotlin 扩展函数吗?

java - jvm:是否有可能在关闭 Hook 中发现进程由于 OOM 而关闭?

hibernate - 实体管理器返回 @OneToMany 相关实体的重复副本

spring - UncategorizedKeyValueException 试图通过具有事务支持的存储库保存 RedisHash

spring-mvc - 如何在 Spring Webflux 中返回 Mono<Map<String, Flux<Integer>>> 响应?

java - 如何以编程方式从另一个 Android 应用程序访问/检测特定的 Activity 变量?

java - 尝试使用异步将图像上传到 Android 网络服务器?