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上的arraylist的代码
public List<Users> getListUsers() {
return this.userService.getTechnicians("Technician");
}
那么,我特别想要什么。我想要一个查询,可以在用户的表格列表中进行排序,其中工作场所是“技术人员”。
感谢您的帮助,祝您度过愉快的一天。
答案 0 :(得分:0)
在JPQL命名查询参数中,以:
开头,后跟名称。因此,如果您想调用查询参数Technician
,则需要在查询中将其引用为:Technician
。
然后,您可以使用参数名称及其值调用setParameter
接口上的Query
方法。
以下是使用您的查询的示例:
public List<User> getTechnicians(String technician) {
TypedQuery<User> q = getEntityManager().createQuery("SELECT u FROM User u WHERE u.poste =:Technician", User.class );
q.setParameter("Technician", technician);
return q.getResultList();
}