2017-03-06 49 views
0

我對我的模型有一個查詢,我正按照我的模型,標識,標題等屬性進行過濾。但是,如何將所有條件都包含進or我看了一下disjunction,但是我沒有找到一種只有在有值時才添加條件的方法。如何在ebean查詢中添加條件?

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

展望谷歌組,我剛剛找到了解決辦法:

Junction<Ticket> filters = Ebean.find(Ticket.class).where().disjunction(); 

    if(filter.getId() != null){ 
     filters.add(Expr.eq("id", filter.getId())); 
    } 
    return filters.endJunction().findList(); 

脫節returs Juntions的列表,然後我檢查值,並在列表上添加一個Expr的。