过滤数据库记录的可选列
Optional columns to filter dataBase records
我应该如何使用 Ebean 的 finder
创建一个带有可选列的查询来过滤一些数据?
我想得到一个 List<User>
例如。假设我有 3 列要过滤:按名称、按流派和其他内容。如果我 select 流派,查询应该列出流派 selected 的所有记录,之后,如果我 select name John 和 genre male,查询应该列出所有 "John" 谁是 "male" 等等。
我知道创建简单查询来查找列:
find.where().eq("ex1",var1).eq("ex2", var2).findList();
有什么建议吗?
尝试使用 ExpressionList。这是示例,如果 if statement
中的条件满足,则表达式将包含在 where 子句中。
public static List<User> filterUsers(int user_no, String genre, String name){
com.avaje.ebean.ExpressionList expressionList = find.where().eq("user_no", user_no);
if(condition1)
expressionList.eq("genre", genre);
if(condition2)
expressionList.eq("name", name);
return expressionList.findList();
}
我应该如何使用 Ebean 的 finder
创建一个带有可选列的查询来过滤一些数据?
我想得到一个 List<User>
例如。假设我有 3 列要过滤:按名称、按流派和其他内容。如果我 select 流派,查询应该列出流派 selected 的所有记录,之后,如果我 select name John 和 genre male,查询应该列出所有 "John" 谁是 "male" 等等。
我知道创建简单查询来查找列:
find.where().eq("ex1",var1).eq("ex2", var2).findList();
有什么建议吗?
尝试使用 ExpressionList。这是示例,如果 if statement
中的条件满足,则表达式将包含在 where 子句中。
public static List<User> filterUsers(int user_no, String genre, String name){
com.avaje.ebean.ExpressionList expressionList = find.where().eq("user_no", user_no);
if(condition1)
expressionList.eq("genre", genre);
if(condition2)
expressionList.eq("name", name);
return expressionList.findList();
}