#hibernate #criteria #where
#переход в спящий режим #критерии #предложение where
Вопрос:
Есть таблица с именем STUDENTS со столбцами studentName и StudentID
Я хочу выполнить запрос типа
SELECT studentName
FROM STUDENTS
WHERE studentId ='1';
в критериях hibernate и хотите сохранить этот результат в некоторой строковой переменной
Ответ №1:
Что-то вроде:
String result = (String)sess.createCriteria(Students.class)
.add(Restrictions.eq("studentId",1))
.setProjection(Property.forName('studentName'))
.uniqueResult();
Комментарии:
1. Спасибо :), это работает, теперь этот результат на самом деле является некоторой датой, затем я хочу сравнить эту дату с какой-либо другой датой, просто проверьте, какая дата больше, например 2011-05-25 00:35: 07 или 2011-07-25 00: 35:08 в моем предыдущем SQL, который я использовал (UNIX_TIMESTAMP (r.lastupdatedate) — UNIX_TIMESTAMP (e.lastlogindate))>= 1 » , у вас есть какие-либо идеи, что я буду использовать nowi.e в режиме гибернации критерии для сравнения двух дат. Спасибо
2. Вы можете сравнить эту дату, используя Restrictions api. Что-то вроде: Restrictions.gt (yourDate, resultFromAboveDate). Если вы хотите использовать приведенный выше запрос в качестве подзапроса в более крупном запросе, который сравнивает даты, я рекомендую прочитать документацию hibernate по отдельным запросам с помощью Criteria api: docs.jboss.org/hibernate/core/3.3/reference/en/html /…
3. createCriteria устарел.