EJB-QL异常

时间:2010-08-06 12:45:58

标签: ejb

从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'关键字时抛出异常....

1 个答案:

答案 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也可以正常工作。