我对我的模型有一个查询,我正在根据我的模型,Id,标题等属性进行过滤。但是,如何将所有条件包装到or
我查看disjunction
但我没有找到方法只在有值时才添加条件。
Query<Ticket> query = Ebean.find(Ticket.class);
if(filter.getId() != null){
query.where().eq("id", filter.getId());
}
if(StringUtils.isNotBlank(filter.getTitle())){
query.where().icontains("title",filter.getTitle());
}
return query.findList();
答案 0 :(得分:0)
纵观谷歌群组,我刚刚找到了解决方案:
Junction<Ticket> filters = Ebean.find(Ticket.class).where().disjunction();
if(filter.getId() != null){
filters.add(Expr.eq("id", filter.getId()));
}
return filters.endJunction().findList();
disjunction返回一个Juntions列表,然后检查该值并在列表中添加一个Expr。