5

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

我正在尝试构建一个看起来像的查询,其中employeeId 和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);

但是上面的查询第一次不起作用,它产生了上面的错误,但是当我第二次再次触发相同的方法时,一切都很顺利,每次都会发生这种情况,这可能是什么原因?

4

2 回答 2

0

你可以试试这个:

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

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

于 2013-08-10T09:27:02.170 回答
0
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);

我不知道是什么原因,但它曾经发生在我身上。像这样试试。只需删除 =:empId 和其他参数之间的空格即可。

于 2017-03-13T21:07:32.567 回答