order by子句中的case语句在HQL中不起作用

时间:2014-12-16 13:12:59

标签: java hql

当我在Hibernate Query中使用带有setMaxResults()和setFirstResult()的case语句时,它显示错误的记录。例如,我的查询是

select code, text from dropDownTable where (code like '%meter%' or text like '%meter%') order by case when text like 'meter%' or code like 'meter%' then 0 when text like '%meter' or code like '%meter' then 2 else 1 end

现在我在Hibernate Query中使用setMaxResults(fetchSize)setFirstResult(fetchSize*fetchCount)。当fetchCount大于1时,它显示相同的记录。

我没有意识到当我们设置起始索引时,为什么它显示在该索引之前的记录。请帮我解决这个问题。以下是我的java代码:

Query managerQuery = session.createSQLQuery(dynamicQuery);
managerQuery.setMaxResults(fetchSize);
managerQuery.setFirstResult(fetchSize * fetchCount);
returnList = managerQuery.setResultTransformer(insensitiveAliasTransformer).list();

0 个答案:

没有答案