【问题标题】:How to execute dynamic n1ql query with Spring data CouchbaseTemplate如何使用 Spring 数据 CouchbaseTemplate 执行动态 n1ql 查询
【发布时间】:2021-10-14 08:39:45
【问题描述】:

我正在将 spring data couchbase 迁移到 4.*

在以前的版本中,我曾经像下面这样执行动态 N1Ql 查询

N1qlQueryResult result = couchbaseTemplate.queryN1QL(N1qlQuery.simple(complexStringQuery));

现在升级后,我看到 queryN1QL 已被删除,我们应该使用 findByQuery。 但是 findByQuery 不接受字符串查询。

如何使用较新的 spring data couchbase 版本来实现这一点。

感谢您的帮助

【问题讨论】:

    标签: java couchbase spring-data-couchbase


    【解决方案1】:

    由于 Couchbase 6.6 和 7 增加了对范围和集合的支持,查询被移至集群/存储桶级别:

    @Autowired
    private Cluster cluster;
    
    @Autowired
    private Bucket bucket;
    
    ...
    
        cluster.query(N1qlQuery.simple("Select * From myBucket",
                N1qlParams.build().consistency(ScanConsistency.REQUEST_PLUS))).allRows();
    
        //or
        
        bucket.query(N1qlQuery.simple("select * from Buckey")).allRows();
    

    【讨论】:

    • 我在类路径中找不到 N1qlQuery.class,看起来类在新版本中被删除了。我知道我们可以使用像 cluster.query("Select * From myBucket").rowsAs({TragetType}.class); 这样的 CB 客户端来实现这一点,但我正在寻找 Spring cocuhbase 方面是否有任何可用的东西
    猜你喜欢
    • 1970-01-01
    • 2017-10-22
    • 1970-01-01
    • 2018-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    相关资源
    最近更新 更多