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

标签 java jpa

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

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/

相关文章:

java - 使用 Spring Autowiring 嵌入式弹性件

java - spring - 从 application.properties 文件中读取环境变量

java - 当具体 JPA 实体类与其通用父类(super class)位于不同的包中时,加载应用程序时出现问题

mysql - 连接 JPA Hibernate MySQL 的预期路径

java - JPA 禁止执行 ALTER SEQUENCE

mysql - @Query 使用 or, and

java - 使用 Selenium 和 Java 编写 xpath 的困难

java - 将抽象方法从父类(super class)扩展到子类

Java - 对数组进行排序

hibernate - Hibernate new_generator_mappings 到底做了什么?