gpt4 book ai didi

java - Couchbase 的 Spring Data : use of AND ANY . .. 满足

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:20:41 24 4
gpt4 key购买 nike

我有一个 SpringBoot 2 应用程序,它使用 Couchbase 作为数据库、Spring-Boot 和 Spring-Data 以及 Lombok fot getters 和 equals 方法我创建了这个存储库

@ViewIndexed(designDoc = "bendicionesDoc")
public interface BenRepository extends CouchbaseRepository<BendicionesDoc, String> {

@Query("#{#n1ql.selectEntity} where #{#n1ql.filter} AND ANY uuid IN data.identifier.id SATISFIES uuid = $1 END")
List<BendicionesDoc<Item>> findById(String id);


}

这里是用 Lombok 库创建的所有对象

public class BendicionesDoc<T>implements Serializable {


@Field
private T data;

}

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(NON_NULL)
public class Item {

private List<Identifier> identifier;


}

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(NON_NULL)
@EqualsAndHashCode
public class Identifier {

private String id;
private MasterServant idContext;
private MasterServant idScope;

}

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(NON_NULL)
@EqualsAndHashCode(onlyExplicitlyIncluded = true)
public class MasterServant {

private String context;
@JsonValue
@EqualsAndHashCode.Include
private String value;

private Name valueDescription;

@JsonCreator
public MasterServant(String value) {
this.value = value;
}

}

但是当我运行存储库查询时,我总是得到 0 个结果,即使有文档。在数据库中:

最佳答案

您需要定义您的 reference typeCouchbaseRepository<T, K>然后只需添加引用类型 Item作为CouchbaseRepository<BendicionesDoc<Item>, String>只需使用 Repository query keywords对于 findById(String id) .

public interface BenRepository extends CouchbaseRepository<BendicionesDoc<Item>, String> { 

List<BendicionesDoc<Item>> findById(String id);

}

关于java - Couchbase 的 Spring Data : use of AND ANY . .. 满足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58406989/

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