简体   繁体   English

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

[英]Spring/Hibernate Select Count(*) Query Customizing?

Please help me, 请帮我,

Here's my DAO that gave me correct number of rows but I want to add some conditions. 这是给我正确行数的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;
}

this is my MySQL Query : 这是我的MySQL查询:

SELECT first_name 选择名字

FROM employees 来自员工

WHERE first_name LIKE '%ab%' WHERE first_name喜欢'%ab%'

AND salary > 0 and salary < 100000; 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);

You can also use named parameters also as below: 您还可以如下使用命名参数:

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

Another alternate is to use the Hibernate Criteria API: 另一个替代方法是使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM