2
我使用PLAY Framework 2.2.1,我想建立一個查詢來搜索數據庫中我從輸入表單中獲得的術語。Ebean:加入多個表達式或OR
這是我這麼遠,但它不工作:
...
List<String> terms;
public static Model.Finder<Integer, XYZ> find = new Model.Finder<Integer, XYZ.class>(Integer.class, XYZ.class);
ExpressionList<XYZ> el = XYZ.find.where();
for(String term : terms){
el.add(Expr.ilike("name", term + "%"));
}
List<XYZ> results = XYZ.find.where().add(el.disjunction()).findList();
我不知道如何與或我的查詢添加和連接多個表達式。
如果我不想兩次「喜歡」但是「喜歡」,該怎麼辦。我如何製作一個循環?這個問題沒有辦法嗎?如果我理解正確,可以對給定的表達式列表(=> ExpressionList)使用方法dijunction()。但我不知道如何創建一個新的實例以及如何應用它。 –
檢查我對「n」大小查詢的編輯 – biesior
您的代碼對我來說工作正常,但如果我有一個屬性有多個參數,則沒有結果。 我想要的是這樣的查詢: select t0.id c0,t0.name c1 from view_xyz t0其中t0.name像「ab%」或t0.name像「b%或t0.name like」c% 「 但是System.out.println(query.getGeneratedSql())返回這個: select t0.id c0,t0.name c1 from view_xyz t0 where t0.name like? –