У меня следующий код работает отлично. Фильтрует записи на основе одного параметра.
public List<Orders> GetOrders(String email)
{
PersistenceManager pm = PMF.get().getPersistenceManager();
Query query = pm.newQuery(Orders.class);
query.setFilter("Email == pEmail");
query.setOrdering("Id desc");
query.declareParameters("String pEmail");
query.setRange(0,50);
return (List<Orders>) query.execute(email);
}
Теперь я хочу фильтровать по нескольким параметрам. sdate и edate - Дата начала и Дата окончания.
В хранилище данных он сохраняется как дата (не строка).
public List<Orders> GetOrders(String email,String icode,String sdate, String edate)
{
PersistenceManager pm = PMF.get().getPersistenceManager();
Query query = pm.newQuery(Orders.class);
query.setFilter("Email == pEmail");
query.setFilter("ItemCode == pItemCode");
query.declareParameters("String pEmail");
query.declareParameters("String pItemCode");
.....//Set filter and declare other 2 parameters
.....//
......
query.setRange(0,50);
query.setOrdering("Id desc");
return (List<Orders>) query.execute(email,icode,sdate,edate);
}
Любая подсказка?
Моя первая проблема решена. Но все же есть некоторые проблемы
1: Как я могу фильтровать по параметру Date (Получение как строка в jsp)?
2: метод query.execute () поддерживает до 3 параметров. Можно ли пройти больше?