【发布时间】:2017-12-19 15:29:33
【问题描述】:
大家早上好,在四处寻找之后,我来找你们寻求帮助。 所以我有一个这个 mysql 查询
SELECT * FROM USER WHERE WORPLACE ='TECHNICIAN',
这是我的 JQPL 查询
SELECT U FROM USER U WHERE U.WORPLACE =:+TECHNICIAN
但是我如何在 Glassfish 上得到这个错误
java.lang.IllegalStateException: Query argument Technician not found in the list of parameters provided during query execution.
这是我在托管 Bean 上的数组列表的代码
public List<Users> getListUsers() {
return this.userService.getTechnicians("Technician");
}
那么,我具体想要什么。我想要一个可以在工作场所为“技术员”的用户表列表中排序的查询。
感谢您的帮助,祝您有美好的一天。
【问题讨论】:
-
什么是“:+TECHNICIAN”?命名参数前面有冒号。但是 + 号在做什么呢?谁知道这个“getTechnicians”方法是什么......
-
抱歉,getTechnicians 是调用查询 'SELECT U FROM USER U WHERE U.WORPLACE =:+TECHNICIAN' TECHNICIAN 的方法,它是我许多工作场所中使用保存方法的方法跨度>
-
您是否尝试删除 jpql 查询上的 + 号?
-
所以发布该方法的代码
-
当我尝试删除“+”时,这会向我发送一个合成错误。 public List
getTechnicians(String Technician) { return getEntityManager() .createQuery("SELECT u FROM User u WHERE u.poste =:"+ Technician) .getResultList(); .这是完整的查询。这似乎没有错误。但无论如何 glassfish 给我发了一个 java.lang.IllegalStateException: Query 参数。我很困惑