我使用以下代码用Hibernate执行HQL查询:
String myHqlQuery = "select from MyTable where Something = ? order by SomeVal";
// Set bind values ...
getHibernateTemplate().find(myHqlQuery, bindParams);
现在,我想从表中选择前N行。我知道mySql有LIMIT关键字在HQL中不可用。我也知道Hibernate有setMaxResults()
方法可以在Query
对象上运行。
我的问题是 - 有没有办法添加“限制”约束而不必过多地改变我的代码(即通过HibernateTemplate对象执行查询)?
答案 0 :(得分:2)
以下代码适用于我
HibernateTemplate ht = getHibernateTemplate();
ht.setMaxResults(10);
List<Object> obj= ht.findByNamedQueryAndNamedParam("namedQuery",
new String[] { "parameter1" },
new Object[] { parameter1 });
所以我认为你应该能够做到:
String myHqlQuery = "select from MyTable where Something = ? order by SomeVal";
// Set bind values ...
HibernateTemplate ht = getHibernateTemplate();
ht.setMaxResults(10);
ht.find(myHqlQuery, bindParams);
答案 1 :(得分:0)
使用
org.springframework.data.domain.Pageable
int numberOfItems = 10;
Pageable pageableTop = new PageRequest(0, numberOfItems);
yourRepository.findYourEntity(pageableTop);