使用spring-data-jpa 1.2.0.RELEASE
我遇到querydsl问题我有实体项目,其中包含一组促销活动,每个促销活动都有一个Enum的PromotionType。我正在尝试查找包含过滤促销集的所有项目,其中PromotionType == PromotionType.Special。我想我会通过一个子查询来实现这样的促销活动:
谓词:
public class ItemPredicates {
private static QItem $ = QItem.item;
public static BooleanExpression getSpecialItems() {
return $.promotions.any().promotionType.eq(PromotionType.SPECIAL);
}
}
Test:
//prepare data
Item item = new Item();
item.setPromotions(Sets.newHashSet(promotion(PromotionType.SPECIAL), promotion(PromotionType.NORMAL)));
//assertion
Item specialItems = itemRepository.findOne(ItemPredicates.getSpecialItems());
所以我希望过滤出促销的商品只有特殊类型的促销,而我总是会得到一套具有促销活动的商品。如果我将测试更改为:
Test:
//prepare data
Item item = new Item();
item.setPromotions(Sets.newHashSet(promotion(Promo tionType.NORMAL)));
//assertion
Item specialItems = itemRepository.findOne(ItemPredicates.getSpecialItems());
然后我将得到没有正确的项目。但是如何过滤促销组只有SPECIAL促销类型?
请你能帮我一把吗?