gpt4 book ai didi

java - Spring-data-couchbase - 运行非临时参数化查询

转载 作者:行者123 更新时间:2023-12-01 08:55:18 27 4
gpt4 key购买 nike

是否有可能使用注释 @Query 来执行参数化的 N1QL 查询并关闭 adhoc 标志?

即对于给定的查询:

@Query("#{#n1ql.selectEntity} WHERE #{#n1ql.filter} and author = $author")
List<Comment> getCommentsByAuthor(@Param("author") String author);

如果没有,是否有其他方法可以强制 couchbase 在注释查询中使用二级索引(在此示例中是作者字段上的索引)?

最佳答案

你似乎混合了一些东西:

  • 参数化查询将与您的代码片段中的 @Query 注释配合使用。文档提到了它(在 this section 中的第一个警告 block 下方)

  • N1QL 二级索引应由 N1QL 自动选取,具体取决于语句。这里的微妙之处在于n1ql.filter。 SDC 需要将此类查询限制为异构存储桶中正确的文档集。

  • adhoc 是另外一回事:它与准备好的语句有关。 SDC 不使用该功能,它只会生成具有 adhoc 默认值的 N1QL 查询(据我所知,这仍然是 true)。

如果您已记录此注释生成的查询并对其运行 EXPLAIN 以有效地查看未拾取索引,也许可以尝试反转 WHERE 子句中的两个表达式?

关于java - Spring-data-couchbase - 运行非临时参数化查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42067886/

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