Критерии гибернации для получения записей, которые имеют 2012 год - PullRequest
0 голосов
/ 02 апреля 2012

Мне нужны все записи, для которых введен год по критериям поиска.Например: String year = "2012";

В спящем режиме это работает для

criteria.add(Restrictions.like("createDate", "%"+year+"%"));

createDate в формате DD-MM-YY.

Пожалуйста, предложите ..

Ответы [ 2 ]

0 голосов
/ 02 апреля 2012

like применяется только к строке.Для поля даты вы можете использовать Restrictions.between() для генерации between '01/01/2012 00:00:00' and '12/31/2012 23:59:59' для предложения where

SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
Date fromDate = df.parse("1-1-2012 00:00:00");
Date toDate = df.parse("31-12-2012 23:59:59");

criteria.add(Restrictions.between("createDate", fromDate, toDate));

Кроме того, обратите внимание, что все свойства, используемые в Criteria API, являются именем свойства Java, но нефактическое имя столбца.

0 голосов
/ 02 апреля 2012
criteria.add(Restrictions.like("createDate", "%2012%", MatchMode.ANYWHERE));

Но я бы предпочел изменить поле вашей базы данных на формат даты (его строку в данный момент?) И выполнить сравнение больше, чем (вместо того, чтобы делать это).

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