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

Hibernate:参数值与预期类型不匹配?

甘兴学
2023-03-14

当我想跑的时候:

List<MappingInstruction> result = emFactory.get()
          .createQuery("FROM " + MappingInstruction.class.getSimpleName() + " c where c.mapping = :mapping",
              MappingInstruction.class).setParameter("mapping", mappingInfo.getId()).getResultList();

我得到:

执行操作“MappingAddAction”的服务异常,java.lang.IllegalArgumentException:参数值[5118]与预期的类型[com.vernuso.trust.server.domain.ClientImport.MappingInfo(N/A)]不匹配

有人能帮助我理解为什么它需要mappinginfo类型而不是long类型吗?

我有两个表,如下图所示。MappingInfo与MappingInstruction表具有一对多的关系。

共有1个答案

端木存
2023-03-14

仔细看:

List<MappingInstruction> result = emFactory.get()
          .createQuery("FROM " + MappingInstruction.class.getSimpleName() + " c where c.mapping = :mapping",
              MappingInstruction.class).setParameter("mapping", mappingInfo.getId()).getResultList();

您正在从MappingInstruction实体进行提取。在where条件中,c.mapping的类型是MappingInfo。请检查MappingInstruction类内部映射变量的数据类型。

因为c.mapping是MappingInfo类型,但您传递的是长的MappingInfo.getID(),所以会引发ava.lang.IllegalArgumentException。

因此,更正如下:

List<MappingInstruction> result = emFactory.get()
              .createQuery("FROM " + MappingInstruction.class.getSimpleName() + " c where c.mapping = :mapping",
                  MappingInstruction.class).setParameter("mapping", mappingInfo).getResultList();
 类似资料:
  • 在游戏实体中我有: 我得到这个错误: 游戏实体:

  • 我正在使用Hibernate4,我在JSF页面中有一个过滤器来获取搜索结果。在执行搜索期间,我得到以下异常 java.lang.IllegalArgumentException:参数值[568903]与org.hibernate.ejb.AbstractQueryImpl.validateParameterBinding(AbstractQueryImpl.java:370)org.hiberna

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

  • 问题内容: 我正在使用Hibernate 4,并且在JSF页面中有一个过滤器来获取搜索结果。在执行搜索期间,出现以下异常 java.lang.IllegalArgumentException:参数值[568903]与org.hibernate.ejb.AbstractateImpl.java:370处org.hibernate.ejb.AbstractQueryImpl.validateParam

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

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