Im создает критерии спящего режима, которые будут проверять, действительно ли контракт действителен в течение года. Контракт имеет начало и дату окончания в качестве стандартного поля даты.
Поэтому, используя SQL-SERVER, я бы подумал что-то в строках этого SQL:
SELECT * FROM CONTRACT WHERE YEAR(startDate) <= ? AND YEAR(endDate) >= ?
Вопросительным знаком является данный год как целое число.
Итак, как преобразовать это в критерии спящего режима?
int year = 2011; //Just a testyear for example purposes.
DetachedCriteria criteria = DetachedCriteria.forClass(Contract.class)
.add(Restrictions.le("startDate", year))
.add(Restrictions.ge("endDate", year));
Как вы можете видеть, я пропускаю бит, где я конвертирую дату в год, чтобы ее можно было сравнить. Естественно, мой код не работает, как есть.
Любое предложение о том, как получить желаемые результаты?