请帮助我,
这是我的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
这 员工
WHERE first_name LIKE'%ab%'
和 工资> 0和工资< 100000;
答案 0 :(得分:0)
DEBUG=nightmare
您也可以使用命名参数,如下所示:
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);
另一种替代方法是使用Hibernate Criteria API:
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);