Java Query for Dates не работает? - PullRequest
       2

Java Query for Dates не работает?

0 голосов
/ 29 августа 2010

Привет! Я использую Google App Engine и использую его базу данных. Я пытаюсь получить данные и сделать запрос, а только искать нужные мне даты и время. так что, если я хочу, чтобы все введенные даты выходили 9 сентября, то он выдаст мне список всех дат за сентябрь.

    PersistenceManager pm = PMF.get().getPersistenceManager();
    List rules = null;
    try {
        String query = "SELECT FROM "+
                    TestRule.class.getName()+
                    " where"+
                    " days > 31";
        System.out.println("query = "+query);
        Query q = pm.newQuery(query);
        q.setFilter("curDate < endDate");

        q.declareParameters("long curDate");
        Date curDate = new Date(); 

    rules =  (List) q.execute(curDate.getTime());

        resp.setContentType("text/html; charset=UTF-8");
        PrintWriter out = resp.getWriter();
        if(rules != null) {
            out.print("<p> Query result size = "+rules.size()+"</p>");                      
        } else {
            out.print("<p> Query returned null </p>");                      
        }


} finally {
        pm.close();

}
}

Класс правил Test содержит данные базы данных. и имеет добытчики и сеттеры. Кто-нибудь знает, как это сделать, если есть другие способы чем это было бы здорово. Спасибо всем

1 Ответ

1 голос
/ 29 августа 2010

Есть еще один, более компактный способ сделать это: Вы также уверены в фильтре days > 31?

PersistenceManager pm = PMF.get().getPersistenceManager();
    List rules = null;
    try {

        Query query = new Query(TestRule.class, "curDate < endDate && days > 30");       
        q.declareParameters("long curDate");
        rules =  (List) q.execute(new Date().getTime());

        return rules;
}finally {
    pm.close();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...