当前位置: 首页 > 知识库问答 >
问题:

错误:参数值与预期类型不匹配

松茂实
2023-03-14

这是我运行程序时收到的错误:

ERROR [org.jboss.as.ejb3.invocation] (default task-19) 
JBAS014134: EJB Invocation failed on component CustomerServiceBeanImpl 
for method public abstract package.name.entity.ICustomer 
package.name.bean.CustomerServiceBean.getCustomerById(long): 
javax.ejb.EJBException: java.lang.IllegalArgumentException: 
Parameter value [19533] did not match expected type [package.name.entity.User (n/a)]

注:[19533]是我使用的一个测试值。

这是在CustomerServiceBeanImpl.java中出现错误的方法:

@Override
public Customer getCustomerById (final long id)
{
    return Customer.getById (this.em, id);
}
public static Customer getById (final EntityManager em, final long id)
{
    for (final Customer c : em.createNamedQuery ("Customer.getById", Customer.class)
    .setParameter ("id", id).setMaxResults (1).getResultList ())
    {
        return c;
    }
    return null;
}
@NamedQuery (name = "Customer.getById", 
query = "SELECT o FROM gnf.Customer o WHERE o.user = :id")
@ManyToOne (fetch = FetchType.LAZY)
@JoinColumn (name = "user_id")
private User         user;

在快速检查ERD时,“Customer”表中的“id”列的数据类型为bigint。然而,我不确定这是否重要。(顺便提一下PostgreSQL数据库。)

如何修复此错误?

共有1个答案

尤俊誉
2023-03-14

命名查询中的WHERE子句似乎是问题所在。您的Customer.Class中的属性user属于user类型,而您的查询期望它是与Long兼容的类型。

...参数值[19533]与预期的类型[Package.Name.Entity.User.]不匹配...

因此,如果您需要更多的帮助,可以看到完整的实体用户和客户。

 类似资料:
  • 它打印出值的等效,这是因为这一行: 通过调用表示。 那么,如何使Hibernate相信是的实例? 我的枚举是由加载的。而由URLClassLoader加载,由另一个类加载器加载。

  • 当我想跑的时候: 我得到: 执行操作“MappingAddAction”的服务异常,java.lang.IllegalArgumentException:参数值[5118]与预期的类型[com.vernuso.trust.server.domain.ClientImport.MappingInfo(N/A)]不匹配 有人能帮助我理解为什么它需要类型而不是类型吗? 我有两个表,如下图所示。Mappi

  • 我做错了什么? 正在更新: 我发现了问题所在。问题与ActionRepository中找到的函数有关。函数的签名首先要求两个日期进行比较,然后id和我给出了相反的值。我很清楚,在我上了它之后,我会有一个问题的日期,所以答案确实帮助了我。谢谢大家!

  • 我得到的错误. 我对此感到困惑,因为它来自下面显示的被注释掉的服务方法。当我把它注释掉时,错误就避免了。列是一个,即或。 实体: 我的存储库: 我的服务: 当我取消注释时

  • 问题内容: 我收到以下错误 java.lang.IllegalArgumentException: Parameter value [2] did not match expected type [com.cityBike.app.model.User (n/a)] at org.hibernate.jpa.spi.BaseQueryImpl.validateBinding(BaseQueryIm

  • 我在请求服务线路时收到此错误: 错误:组织。springframework。道。InvalidDataAccessApiUsageException:参数值[5]与预期类型[nz.webshop.models.Customer.Customers(不适用)]不匹配;嵌套的异常是java。lang.IllegalArgumentException:参数值[5]与预期类型[nz.webshop.mod