注意事项:
1、与条件使用 &&
2、过滤条件queryTemplate 不能加上排序order by语句。解决方法是使用query.setOrdering("orderDate desc");
1、与条件使用 &&
2、过滤条件queryTemplate 不能加上排序order by语句。解决方法是使用query.setOrdering("orderDate desc");
public List<FanOrder> queryByUsername(String username,String startDate,String endDate){
List<FanOrder> orders = null;
Query query = null;
try {
String queryTemplate = "",filter="";
if (!username.equals("")){
queryTemplate = "username == \"%s\" && orderDate >= \"%s\" && orderDate <= \"%s\" ";
filter = String.format(queryTemplate,username,startDate, endDate);
}else{
queryTemplate = "orderDate >= \"%s\" && orderDate <= \"%s\" ";
filter = String.format(queryTemplate,startDate, endDate);
}
query = pm.newQuery(FanOrder.class,filter);
query.setOrdering("orderDate desc");
orders = (List<FanOrder>) query.execute();
} catch (RuntimeException e) {
e.printStackTrace();
}finally {
query.closeAll();
}
return orders;
}