我从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);
但是上面的查询第一次没有工作,它产生了上面的错误,但是当第二次我再次触发相同的方法时,每一件事都顺利进行,这种情况每次都会发生,这可能是什么原因?
答案 0 :(得分:0)
你可以试试这个:
Query query=em.createQuery("SELECT e FROM Employee e WHERE e.empId = ? and e.empDepartment = ?");
query.setParameter(1, employeId);
query.setParameter(2, empDepartment);
如果这也不起作用,那么查询内容也可能存在问题,而不是替换参数。也许这些类型不正确。参数类型由上下文推断。
答案 1 :(得分: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);
我不知道是什么原因,但它曾经发生在我身上。试试吧。只需删除=:\ tempId和其他参数之间的空格。