gpt4 book ai didi

spring-data-mongodb - QueryDSL isNotEmpty 表达式失败

转载 作者:行者123 更新时间:2023-12-02 03:28:10 24 4
gpt4 key购买 nike

我正在尝试执行一个表达式,该表达式返回一组结果,其中 collection 属性不为空。这是我的类(class)

A类

@Document
public class A {
@Id String id;
String name;
List<B> matches;
}

B类

@Document
public class B {
String name;

}

我的测试用例

@Test
public void testFindWhereCollectionNotEmpty() {

B b1 = new B();
b1.name = "b1";

B b2 = new B();
b2.name = "b2";

template.save(b1);
template.save(b2);

A a1 = new A();
a1.id = "p1";
a1.matches = Arrays.asList(b1, b2);

A a2 = new A();
a2.id = "a2";
a2.matches = new ArrayList<B>();

A a3 = new A();
a3.id = "a3";
a3.matches = null;

template.save(a1);
template.save(a2);
template.save(a3);

QA qa = QA.a;


BooleanExpression expr = qa.matches.isNotEmpty();
Iterable<A> result = aRepo.findAll(expr);

assertThat(result, is(not((emptyIterable()))));
}

当我执行此测试时,出现以下错误:

com.mongodb.MongoException: Can't canonicalize query: BadValue $or needs an array
at com.mongodb.QueryResultIterator.throwOnQueryFailure(QueryResultIterator.java:214)
at com.mongodb.QueryResultIterator.init(QueryResultIterator.java:198)
at com.mongodb.QueryResultIterator.initFromQueryResponse(QueryResultIterator.java:176)
at com.mongodb.QueryResultIterator.<init>(QueryResultIterator.java:64)
at com.mongodb.DBCollectionImpl.find(DBCollectionImpl.java:86)
at com.mongodb.DBCollectionImpl.find(DBCollectionImpl.java:66)
at com.mongodb.DBCursor._check(DBCursor.java:458)
at com.mongodb.DBCursor._hasNext(DBCursor.java:546)
at com.mongodb.DBCursor.hasNext(DBCursor.java:571)
at com.mysema.query.mongodb.MongodbQuery.list(MongodbQuery.java:253)
at org.springframework.data.mongodb.repository.support.QueryDslMongoRepository.findAll(QueryDslMongoRepository.java:102)

您可以在 https://github.com/tedp/spring-querydsl-test 上亲自尝试一下

我做错了什么吗?

最佳答案

此问题现已在 QueryDSL 3.6.3 版中得到修复。参见 https://github.com/querydsl/querydsl/issues/1264了解更多信息。

非常感谢所有参与修复的人!

关于spring-data-mongodb - QueryDSL isNotEmpty 表达式失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29104204/

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