我正在寻找一个异常的解决方案

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

我当前的注释是:
@Query(
    nativeQuery = true,
    value = "SELECT * FROM thgcop_order_placement WHERE \"order_info\" @> '{\"parentOrderNumber\":\" :param \"}'")

我猜@Query来自于双引号加双引号加单引号。
我该怎么做?
查询使用的是Postgresposition [1] did not exist数据类型。列定义是JSONB
在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);

这就是我取得结果的方法。我希望这将是非常有帮助的所有热情!!
谢谢大家的帮助!!!

09-06 01:38