Spring / Hibernate选择Count(*)查询自定义?

时间:2017-06-22 03:00:55

标签: java mysql spring hibernate

请帮助我,

这是我的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;

1 个答案:

答案 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);