0
我收到了一個搜索應用程序,其中許多條件被組合成'和''或'列表。如何在Ebean查詢中動態地包含表達式?
根據用戶輸入,其中一些可以爲空,如果這些值爲空,則不應考慮這些值。
例如:
public static PagedList<Profile> exampleForSO(String param1, String params2, Integer number, Double d, Boolean condition1, Boolean condition2) {
return find.where().ieq("param1", param1).
ieq("param2", params2).
eq("number", number).
// based on the fact if condition1 is null include an eq("condition", condition1); block
// based on the fact if condition2 is null include an eq("condition", condition1); block
// if param1.equals("test") create an expression .eq("param1", param1).
findPagedList();
}
我大概可以解決的幾個,如果else塊,並返回結果基於該標準,但有超過12個不同的條件,因此堅實的方式,如果只是它們排除在外他們是空的將是真棒。
我也可以創建許多不同的方法,但必須有一些更聰明的方法。
而且在條件不具備爲空,但可以有,使他們在查詢中過時的一些特定的值,例如:
params1.equals("something");
不包括它,因爲「東西」不會無論如何改變搜索結果。
有什麼建議嗎?
看一看這個[文章](http://stackoverflow.com/questions/31534272/optional-columns-to-filter-database-records /) – Sivakumar
@Sivakumar,謝謝你,這就是我要找的。 –