gpt4 book ai didi

azure - cosmos db无法使用IN、Spring Data原生查询和数组或集合进行查询(Java)

转载 作者:行者123 更新时间:2023-12-03 05:27:50 25 4
gpt4 key购买 nike

我正在尝试为响应式(Reactive)存储库 spring data cosmo DB 创建(使用 spring native 查询)findAllId。由于 ReactiveCosmosRepository 尚未实现。

@Query(value = " SELECT *\n" +
" FROM container_name km\n" +
" WHERE km.id IN (@ids) \n" +
" ORDER BY km.createdDate DESC ")
Flux<ContainerData> findAllById(@Param("ids") String[] ids);

甚至

@Query(value = " SELECT *\n" +
" FROM container_name km\n" +
" WHERE km.id IN (@ids) \n" +
" ORDER BY km.createdDate DESC ")
Flux<ContainerData> findAllById(@Param("ids") Iterable<String> ids);

但它没有检索任何结果,也没有抛出任何异常。

所以问题是,如何在 cosmos db 和集合或数组中将 IN 运算符与 spring data native 查询结合使用,而无需采取解决方法。

最佳答案

您应该使用array_contains

@Query(value = " SELECT *\n" +
" FROM container_name km\n" +
" WHERE array_contains(@ids, km.id, true) \n" +
" ORDER BY km.createdDate DESC ")
Flux<ContainerData> findAllById(@Param("ids") Iterable<String> ids);

关于azure - cosmos db无法使用IN、Spring Data原生查询和数组或集合进行查询(Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67469889/

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