从MaterialCreation_MDO中选择DISTINCT TOP 10 o.MaterialNumber o其中o.MaterialGroup =?1和o.Noun =?2和o.MaterialNumber类似于?3 order by o.MaterialNumber desc
此查询在ejb-ql语句中遇到'TOP'关键字时抛出异常....
答案 0 :(得分:0)
在EJB-QL中无法识别TOP,而是使用LIMIT。
您可以尝试以下修改过的查询:
select DISTINCT o.MaterialNumber from MaterialCreation_MDO o where o.MaterialGroup= ?1 and o.Noun= ?2 and o.MaterialNumber like ?3 order by o.MaterialNumber desc LIMIT 10;
或者你可以明确地给出要获取的结果数量:
entityManager.createNativeQuery(query,YourClass.class).setParameter("name",value).setMaxResults(10).getResultList();
NamedQuery也可以正常工作。