我正在使用以下代码通过 Hibernate 执行 HQL 查询:
String myHqlQuery = "select from MyTable where Something = ? order by SomeVal";
// Set bind values ...
getHibernateTemplate().find(myHqlQuery, bindParams);
现在,我想从表中选择前 N 行。我知道 mySql 有 HQL 中没有的 LIMIT 关键字。我还知道 Hibernate 有 setMaxResults()
方法,您可以在 Query
对象上运行。
我的问题是 - 有没有什么方法可以添加“限制”约束而不必过多更改我的代码(即通过 HibernateTemplate 对象执行查询)?
最佳答案
下面的代码对我有用
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);
关于mysql - hibernate 前 N 行 HQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4419711/