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

Hibernate:使用map进行映射并获取参数类型不匹配

潘星阑
2023-03-14

Java中有一个类DepartmentPerson,我在Hibernate中映射了一个映射,如下所示:

<map cascade="save-update" name="acceptByPeriod" table="tbl_department_people_accept">
        <key column="fk_department_people_asc_id"/>
        <map-key column="fk_period_id" type="int"/>
        <element type="int" column="fld_accept"/>
    </map>

在类中,我将acceptByPeriod定义为:

private Map<Integer, Integer> acceptByPeriod = new HashMap<>();

每当我在DepartmentPerson上运行查询时,都会收到消息:“java.lang.IllegalArgumentException:参数类型不匹配”。这与acceptByPeriod映射有关,因为当我删除它时,问题就消失了。数组tbl\u department\u people\u accept上的所有3个字段都是int类型。我真的不明白出了什么问题;我以前在不同的类中做过这种类型的映射(使用

共有1个答案

柴英锐
2023-03-14

在这篇文章的帮助下发现了问题:IllegalArgumentException:Hibernate中的参数类型不匹配

问题不在于地图的类型,而在于它的设置器。我把它写为:

public void setAcceptByPeriod(HashMap<Integer, Integer> acceptByPeriod)

当它需要的时候

public void setAcceptByPeriod(Map<Integer, Integer> acceptByPeriod)
 类似资料:
  • 问题内容: _id成员的类型仅从bson.ObjectId派生时,不再映射为ObjectId类型: id 在Mongo中应该是一个 _ObjectId 。但是事实证明,选择了 字符串 : Mongo Shell: 这可能是有意的,因为 bson.ObjectId 本身是从 string 派生的。但是在这里,这对我们不利。 我们可以告诉mgo将_id映射到数据库中的ObjectId吗? 问题答案:

  • 我在Sybase数据库中有一个表,其中有一列is_req。它的数据类型是char(1)。它在我的hbm文件中的属性定义如下: 属性名称="is必需"列="is_req"类型="boolean" 现在,当我尝试使用标准/限制进行比较时,比如:,我得到以下例外: 如果我尝试做,我得到以下异常: com.sybase.jdbc2.jdbc.SybSQLException:不允许从数据类型'VARCHAR

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

  • 我在解决泛型问题时遇到了一些麻烦。我有一个“猫”对象列表和一个“狗”对象列表,我需要将它们传递到同一个方法中。该方法的返回类型是一个“字符串”和“动物列表”的映射,我试图找出一种方法来将带有动物列表的映射转换为带有猫或狗列表的映射。 这工作很好,如果我有一个单独的方法猫和狗,但我正在寻找一个更灵活的解决方案。 标题中出现错误的行: 注意:这是一个简化的例子,我必须能够使用地图中的列表作为“猫”或“

  • 问题内容: 是否可以获取通用参数的类型? 一个例子: 问题答案: 我曾经偶然发现的一种结构看起来像 因此,似乎有些不可思议的想法使我感到遗憾,我很不了解…对不起。