数组中的 QueryDSL 不区分大小写的过滤器
QueryDSL case insensitive filter in array
考虑以下 Java class:
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import java.util.List;
@Document(collection = "Doc")
public class Doc {
@Id
private String id;
private List<String> tags;
}
我已经为它生成了一个查询类型 QDoc
因为我想轻松地按 不区分大小写 标签名称进行过滤。
/**
* QDoc is a Querydsl query type for Doc
*/
@Generated("com.querydsl.codegen.EntitySerializer")
public class QDoc extends EntityPathBase<Doc> {
private static final long serialVersionUID = 602371596L;
private static final PathInits INITS = PathInits.DIRECT2;
public static final QDoc doc = new QDoc("doc");
public final StringPath id = createString("id");
public final ListPath<String, StringPath> tags = this.<String, StringPath>createList("tags", String.class, StringPath.class, PathInits.DIRECT2);
...
}
目前,我使用以下代码行区分大小写过滤:
QDoc qDoc = QDoc.doc;
BooleanBuilder where = new BooleanBuilder();
where.and(qDoc.tags.contains("Tag name to filter for"));
如何对 ListPath<String, StringPath>
进行不区分大小写的过滤?
最佳,
菲利普
您可以通过 any()
方法检查不区分大小写的数据,如下所示:
QDoc qDoc = QDoc.doc;
BooleanBuilder where = new BooleanBuilder();
where.and(qDoc.tags.any().equalsIgnoreCase("Tag name to filter for"));
对我有用。
考虑以下 Java class:
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import java.util.List;
@Document(collection = "Doc")
public class Doc {
@Id
private String id;
private List<String> tags;
}
我已经为它生成了一个查询类型 QDoc
因为我想轻松地按 不区分大小写 标签名称进行过滤。
/**
* QDoc is a Querydsl query type for Doc
*/
@Generated("com.querydsl.codegen.EntitySerializer")
public class QDoc extends EntityPathBase<Doc> {
private static final long serialVersionUID = 602371596L;
private static final PathInits INITS = PathInits.DIRECT2;
public static final QDoc doc = new QDoc("doc");
public final StringPath id = createString("id");
public final ListPath<String, StringPath> tags = this.<String, StringPath>createList("tags", String.class, StringPath.class, PathInits.DIRECT2);
...
}
目前,我使用以下代码行区分大小写过滤:
QDoc qDoc = QDoc.doc;
BooleanBuilder where = new BooleanBuilder();
where.and(qDoc.tags.contains("Tag name to filter for"));
如何对 ListPath<String, StringPath>
进行不区分大小写的过滤?
最佳,
菲利普
您可以通过 any()
方法检查不区分大小写的数据,如下所示:
QDoc qDoc = QDoc.doc;
BooleanBuilder where = new BooleanBuilder();
where.and(qDoc.tags.any().equalsIgnoreCase("Tag name to filter for"));
对我有用。