gpt4 book ai didi

java - JPA 失败(java.lang.IllegalArgumentException)

转载 作者:行者123 更新时间:2023-12-01 12:57:19 25 4
gpt4 key购买 nike

我有一个网络服务明显无缘无故地失败了。有时它会执行,有时它会提供此错误,我似乎无法弄清楚,因为查询实际上是有意义的......

java.lang.IllegalArgumentException: You have attempted to set a value of type class org.models.Employees for parameter currentEmployeeID with expected type of class org.models.Employees from query string SELECT b.carID FROM Cars b WHERE b.currentEmployeeID = :currentEmployeeID .
at org.eclipse.persistence.internal.jpa.QueryImpl.setParameterInternal(QueryImpl.java:932)

在键入的查询中,

Employees emp = new Employees(1)

TypedQuery<Integer> query = em.createQuery("SELECT b.carID FROM Cars b WHERE b.currentEmployeeID = :currentEmployeeID", Integer.class);
query.setParameter("currentEmployeeID",emp);

正如我所说,有时它会起作用。有时当我重新启动服务时,它会连续失败。

如果我说 currentEmployeeID 作为整数而不是对象员工,它将提供一个更清晰的错误,我明白为什么..(比如,我正在尝试为参数设置整数类型的值......)

最佳答案

当您等待标识符时,传递给该方法的参数似乎是雇员类型。请尝试以下操作:

Employees emp = new Employees(1)

TypedQuery<Integer> query = em.createQuery("SELECT b.carID FROM Cars b WHERE b.currentEmployeeID = :currentEmployeeID", Integer.class);
query.setParameter("currentEmployeeID",emp.getId());

关于java - JPA 失败(java.lang.IllegalArgumentException),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23771719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com