Hibernate / Java объект не может быть преобразован в дату - PullRequest
0 голосов
/ 18 августа 2010

У меня есть следующий метод в моей Java. По какой-то причине, когда я пытаюсь привести l_month в качестве Date, он говорит, что объект не может быть приведен. В моем выражении sql я конвертирую дату в месяц, используя DATE_FORMAT с «% M», поэтому он просто возвращает список названий месяцев и количество входов в систему за этот месяц. Как я могу получить это поле l_month, чтобы стать датой. В конечном итоге я изменяю его на строку, поэтому, если бы он мог быть приведен к строке, это также было бы замечательно, но, похоже, ничего не работает.

public List<Logins> getUserLoginsByMonth() {
     Session session = getSessionFactory().openSession();
     ArrayList<Logins> loginList = null; 

     try {
          String SQL_QUERY = "SELECT l_date as l_month, SUM(logins) as logins FROM (SELECT DATE_FORMAT(login_time, '%M') as l_date, COUNT(DISTINCT users) as logins FROM user_logins WHERE login_time > DATE_SUB(NOW(), INTERVAL 1 YEAR) GROUP BY DATE(login_time)) AS Z GROUP BY(l_month)";

          Query query = session.createSQLQuery(SQL_QUERY)
                query.addScalar("l_month")
                query.addScalar("logins");

          List results = query.list();
          for(ListIterator iter = results.listIterator(); iter.hasNext() ) {
                Objects[] row = (Object[])iter.next();
                System.out.println((Date)row[0}]);
                System.out.println((BigInteger)row[1]);
          }

     }
     catch(HibernateException e) {
         throw new PersistenceDaoException(e);
     }
     finally {
         session.close();
     }            
}

1 Ответ

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

DATE_FORMAT равен

Blockquote Форматирует значение даты в соответствии со строкой формата.

Так что это строка, а не дата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...