我正在寻找一个异常的解决方案
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
来自于双引号加双引号加单引号。我该怎么做?
查询使用的是Postgres
position [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);
这就是我取得结果的方法。我希望这将是非常有帮助的所有热情!!
谢谢大家的帮助!!!