我需要将此查询转换为hql才能使用我的代码:
SELECT DISTINCT
certificate_id , last_scan
FROM
bcs_certificate_instance
ORDER BY
last_scan
LIMIT 5 ;
谁能帮忙?
答案 0 :(得分:1)
select distinct bci.certificate_id , bci.last_scan
from bcs_certificate_instance bci
order by last_scan asc;
为了限制,必须在执行查询对象之前对查询对象使用setMaxResults()函数。
用于此目的的代码段如下:
Query query = em.createQuery(“select distinct bci.certificate_id , bci.last_scan
from bcs_certificate_instance bci
order by last_scan asc;”);
query.setMaxResults(10);
List resultData = query.getResultList();
就这样。这样便可以限制HQL中查询返回的记录数。
带有@Query注释的示例:
public interface PersonDao extends EntityDao<Person, Long> {
@Query("select p from Person p where p.age between ?1 and ?2")
QueryResult<Person> findAllByAge(int minAge, int maxAge);
}
获得QueryResult后,可以对查询应用更多选项和限制:
List<Person> result = personDao.findAllByAge(18, 65)
.sortAsc(Person_.lastName)
.sortDesc(Person_.age).
.firstResult(10)
.maxResults(10)
.getResultList();
}