org.hibernate.QueryException:并未设置所有命名参数:[]

use*_*113 5 java hibernate jpa

我从JPA 2.0中得到了非常奇怪的行为

我正在尝试构建一个看似喜欢的查询,其中employeId和empDepartment是通过java参数传递的长值

Query query=em.createQuery("SELECT e FROM Employee e WHERE e.empId = :empId and e.empDepartment = :empDepartment");
query.setParameter("empId" ,employeId);
query.setParameter("empDepartment",empDepartment);
Run Code Online (Sandbox Code Playgroud)

但是上面的查询第一次没有工作,它产生了上面的错误,但是当第二次我再次触发相同的方法时,每一件事都顺利进行,这种情况每次都会发生,这可能是什么原因呢?

Den*_*hel 0

你可以试试这个:

Query query=em.createQuery("SELECT e FROM Employee e WHERE e.empId = ? and  e.empDepartment = ?");
query.setParameter(1, employeId);
query.setParameter(2, empDepartment);
Run Code Online (Sandbox Code Playgroud)

如果这也不起作用,那么您的查询内容也可能有问题,而不是参数的替换有问题。也许类型不正确。参数类型由上下文推断。