предложение hibernate where с проекцией

#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 устарел.