如何使用en Expression创建过滤器。
我想过滤地图,而我生成的元模式只允许我提供表达式。
String genre = genreFromXml.text();
我的问题是如何创建一个过滤价值状态的表达式?
我想我可以使用public final BooleanExpression contains(Expression<Integer> key, Expression<Address> value)
作为整数,但我不知道如何构建一个表达式,表示所有具有特定邮政(zip)代码的地址的过滤器。
答案 0 :(得分:0)
这应该有所帮助,首先过滤地图,然后生成表达式。
Map<Integer, Address> collect = <YOUR_MAP_REFERENCE>.entrySet().stream()
.filter(map -> map.getValue().getZipCode() == <ZIP_CODES_TO_BE_FILTERED>)
.collect(Collectors.toMap(p -> p.getKey(), p -> p.getValue()));
Set<Integer> keys = collect.keySet();
ArrayList<Expression<Address>> list = new ArrayList<Expression<Address>>();
Iterator<Integer> it = keys.iterator();
while(it.hasNext()){
list.add(Expressions.constant(collect.get(it.next())));
}
//list: final list of Expression<Address>