【问题标题】:What are the solutions for com.couchbase.client.java.query.dsl.Sort issue?com.couchbase.client.java.query.dsl.Sort 问题的解决方案是什么?
【发布时间】:2022-11-02 11:31:20
【问题描述】:

这是获取类的错误之一,

import com.bookingsite.acme.config.document.paymentoption.PaymentGatewayConfiguration;
import com.bookingsite.acme.config.dto.paymentgatewaysearchrequest.PaymentGatewayConfigSearchRequestDTO;
import com.bookingsite.acme.config.dto.paymentgatewaysearchrequest.PaymentOptionsDTO;
import com.couchbase.client.java.query.dsl.Sort;
import lombok.Getter;
import lombok.Setter;

import java.util.List;

@Getter
@Setter
public class PaymentGatewaySearchData {

    private String searchQuery;
    private Sort sort;
    private int offset;
    private int limit;
    private int totalCount;

    private List<PaymentGatewayConfiguration> paymentGatewaySearchResponseList;

    private PaymentGatewayConfigSearchRequestDTO paymentGatewayConfigSearchRequestDTO;

    private List<PaymentOptionsDTO> paymentOptions;

}

我将 Spring Boot 版本升级到 2.7.4,目前我们使用 Couchbase 到 SDK3 版本。之后出现此错误。

其他使用的方法

public Sort getOrderByQuery(
            PaymentTemplateConfigSearchFilterRequestDTO paymentTemplateConfigSearchFilterRequestDTO) {

        if (validateOrderBy(paymentTemplateConfigSearchFilterRequestDTO)) {
            if (paymentTemplateConfigSearchFilterRequestDTO.getSortDirection().equals(SortDirectionDTO.DESCENDING)) {
                return Sort.desc(paymentTemplateConfigSearchFilterRequestDTO.getSortBy().getAction());
            } else {
                return Sort.asc(paymentTemplateConfigSearchFilterRequestDTO.getSortBy().getAction());
            }

        } else {

            return Sort.desc(N1QlQueryConstants.TEMPLATEMODIFIEDDATE);

        }

    }

什么是最好的选择?

【问题讨论】:

  • 你得到什么错误?

标签: spring-boot sdk couchbase spring-data-couchbase


【解决方案1】:

我想编译器抱怨com.couchbase.client.java.query.dsl.Sort 不存在。

This Couchbase Forum post 解释了为什么 SDK 2 中的 com.couchbase.client.java.query.dsl 中的类没有传递到 SDK 3。

如果您希望继续使用 DSL 类,建议将 the relevant source code from SDK 2 复制到您的项目中。

更新:现在有一个 GitHub 存储库,其中只有 SDK 2 中“缺失”的实验性 Query DSL 类,适用于 SDK 3。现在它真的应该像将这些类复制到您的项目中一样简单:https://github.com/couchbaselabs/couchbase-java-sdk2-query-dsl

【讨论】:

  • 第 1 步:克隆 SDK 2 repository。第 2 步:在您自己的项目中创建包 com.couchbase.client.java.query.dsl.。第 3 步:在 SDK 2 源代码中找到该包,并将所有文件复制到项目中的相应位置。第 4 步:编译您的项目,并修复您发现的任何编译问题。
  • 在哪里可以找到许多 DSL 文件夹中使用的这些依赖项?我在提供的关于 import com.couchbase.client.core.annotations.InterfaceAudience 的 Git 存储库中找不到这些文件;导入 com.couchbase.client.core.annotations.InterfaceStability;这些文件可以在 Couchbase JVM 核心存储库中找到。我们如何在上述场景中使用它?它在 Couchbase sdk3 中不可用吗? github.com/couchbase/couchbase-jvm-core/tree/master/src/main/…
  • 这些导入也用于 DSL 包中。但无法在存储库中找到它们。导入 com.couchbase.client.deps.io.netty.util.internal.StringUtil;导入 com.couchbase.client.deps.com.fasterxml.jackson.core.io.JsonStringEncoder;
  • 您可以删除对这些注释的所有引用。它们只是用于记录某些东西是否属于 SDK 的公共 API 的一部分。
  • 对于StringUtil.isNullOrEmpty,您可以将其替换为:public static boolean isNullOrEmpty(String s) { return s == null || s.isEmpty(); }
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-04-02
  • 1970-01-01
  • 1970-01-01
  • 2012-01-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多