環境:MongoDb 3.2、Morphia 1.1.0
したがって、従業員のコレクションがあり、従業員エンティティにはいくつかのフィールドがあるとしましょう。複数のフィルター(条件付き)を適用し、要求ごとに 10 レコードのバッチを返すようなことをする必要があります。
以下のように疑似コード。
@Entity("Employee")
Employee{
String firstname,
String lastName,
int salary,
int deptCode,
String nationality
}
そして、私EmployeeFilterRequestは要求パラメーターをdaoに運びます
EmployeeFilterRequest{
int salaryLessThen
int deptCode,
String nationality..
}
疑似クラス
class EmployeeDao{
public List<Employee> returnList;
public getFilteredResponse(EmployeeFilterRequest request){
DataStore ds = getTheDatastore();
Query<Employee> query = ds.createQuery(Emploee.class).disableValidation();
//conditional request #1
if(request.filterBySalary){
query.filter("salary >", request.salary);
}
//conditional request #2
if(request.filterBydeptCode){
query.filter("deptCode ==", request.deptCode);
}
//conditional request #3
if(request.filterByNationality){
query.filter("nationality ==", request.nationality);
}
returnList = query.batchSize(10).asList();
/******* **THIS IS RETURNING ME ALL THE RECORDS IN THE COLLECTION, EXPECTED ONLY 10** *****/
}
}
上記のコードで説明したように、複数のフィールドで条件付きフィルタリングを実行したいと考えています。また、batchSize が 10 であっても、コレクション内の完全なレコードを取得しています。
これを解決する方法???
よろしくプニス