[英]Spring/Hibernate Select Count(*) Query Customizing?
請幫我,
這是給我正確行數的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查詢:
選擇名字
來自員工
WHERE first_name喜歡'%ab%'
AND薪水> 0且薪水<100000;
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);
另一個替代方法是使用Hibernate Criteria 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();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.