gpt4 book ai didi

java - QueryDsl BooleanBuilder : How to create a predicate that compares contents of list?

转载 作者:行者123 更新时间:2023-12-03 20:50:00 25 4
gpt4 key购买 nike

我有一个简单的例子:查找具有优先级 > 1 和 active = true 的类别的所有项目。
项目有一个类别列表,每个类别都有一个称为优先级的 int 字段。
我正在尝试执行以下操作:

builder = new BooleanBuilder();
Predicate predicate = builder.and(item.categories.any(category.priority.goe(1).and(category.active.eq(true))));
Iterable<Item> iterable = itemRepository.findAll(predicate);
但我找不到正确的使用方法?有人可以建议吗?

最佳答案

您可以使用 BooleanExpression像下面 -

public List<Item> getItems() {
QItem item = QItem.item;
QCategory category = QCategory.category;
BooleanExpression booleanExpression = item.categories.contains(
JPAExpressions.selectFrom(category).
where(category.item.eq(item).
and(category.priority.eq(1000)
.and(category.active.eq(true)))));
return (List<Item>) itemRepository.findAll(booleanExpression);
}
这对我的版本 4.3.1 有用但不是 4.2.1 .请查收 this example using springboot .

关于java - QueryDsl BooleanBuilder : How to create a predicate that compares contents of list?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63369803/

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