gpt4 book ai didi

spring - 使用带有 Spring Data 和绑定(bind)参数的 Postgres JSONB 查询失败并出现 InvalidDataAccessApiUsageException

转载 作者:行者123 更新时间:2023-11-29 14:04:10 25 4
gpt4 key购买 nike

我目前正在寻找异常的解决方案

org.springframework.dao.InvalidDataAccessApiUsageException: Parameter with that position [1] did not exist;

我当前的 @Query 注释是:

@Query(
nativeQuery = true,
value = "SELECT * FROM thgcop_order_placement WHERE \"order_info\" @> '{\"parentOrderNumber\":\" :param \"}'")

我猜 position [1] 不存在 是因为它在双引号加双引号加单引号中。

我怎样才能让它工作?

查询使用 Postgres JSONB 数据类型。列定义为 ORDER_INFO JSONB

以下 native 查询在 Postgres 客户端中运行良好:

SELECT * FROM thgcop_order_placement
WHERE "order_info" @> '{"parentOrderNumber":"ORD123"}'

最佳答案

除以下内容外,以上均不适合我,

服务层代码:-

OrderInfo orderInfo = new OrderInfo();
orderInfo.setParentOrderNumber("ORD123");
....
String param = objectMapper.writeValueAsString(orderInfo);
List<Order> list = jpaRepository.getByParentOrderNumber(param);

JpaRepository.java 代码:-

@Query(nativeQuery = true, value = "select * from thgcop_order_placement where order_info @> CAST(:condition as jsonb)")
List<Order> getByParentOrderNumber(@Param("condition") String parentOrderNumber);

这就是我实现结果的方式。我希望这对所有热心的人都非常有帮助!!

Thank you all for your help !!!

关于spring - 使用带有 Spring Data 和绑定(bind)参数的 Postgres JSONB 查询失败并出现 InvalidDataAccessApiUsageException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47806851/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com