Spring/Hibernate Select Count(*) Настройка Запроса?
Пожалуйста, помоги мне,
Вот мой DAO, который дал мне правильное количество строк, но я хочу добавить некоторые условия.
@Override
public int getAllRows(SearchForm searchForm) {
logger.info("SearchForm Detail :: " + searchForm);
Session session = this.sessionFactory.getCurrentSession();
Query query = (Query) session.createQuery(" select count(*) from EmployeeVO");
int rows = ((Number) query.uniqueResult()).intValue();
logger.info("Number of Rows :: " + rows);
return rows;
}
Это мой запрос MySQL:
Выбрать
first_name
От
сотрудники
Где
first_name как "%ab% "
И
зарплата > 0 и зарплата
1 ответ:
Query query = (Query) session.createQuery("SELECT first_name FROM employees WHERE first_name LIKE ? AND salary > ? and salary < ?"); query.setParameter(0, '%ab%'); query.setParameter(1, 0); query.setParameter(2, 100000);Вы также можете использовать именованные параметры, как показано ниже:
Query query = (Query) session.createQuery("SELECT first_name FROM employees WHERE first_name LIKE :first_name AND salary > :min_salary and salary < :max_salary"); query.setParameter(first_name, '%ab%'); query.setParameter(min_salary, 0); query.setParameter(max_salary, 100000);Другой альтернативой является использование API критериев гибернации:
Criteria criteria = session.createCriteria(Employee.class); criteria.add(Restrictions.eq("first_name", "%ab%")); criteria.add(Restrictions.lt("salary ", 0)); criteria.add(Restrictions.gt("salary ", 100000)); List list = criteria.list();
Comments