Hibernate:使用地图进行映射并获取参数类型不匹配
Hibernate: mapping with a map and getting argument type mismatch
我在 Java 中得到了这个 class 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>
并且在 class 中,我将 acceptByPeriod 定义如下:
private Map<Integer, Integer> acceptByPeriod = new HashMap<>();
每当我 运行 查询 DepartmentPerson 时,我都会收到消息:“java.lang.IllegalArgumentException:参数类型不匹配”。这与 acceptByPeriod 映射有关,因为当我删除它时问题就消失了。数组 tbl_department_people_accept 上的所有 3 个字段都是 int 类型。我真的不明白出了什么问题;我之前在不同的 classes 中完成过这种类型的映射(使用 映射和 映射,DepartmentEEK 是一个复合元素)并且它工作得很好;事实上,我已经复制了其中一个 classes 的代码,只是更改了字段的名称。我在这里束手无策。知道如何让它工作,或者至少如何弄清楚哪个字段的参数类型不匹配吗?
在这个post的帮助下找到了问题:IllegalArgumentException: argument type mismatch in Hibernate
问题不在于地图的类型,而在于它的 setter。我把它写成:
public void setAcceptByPeriod(HashMap<Integer, Integer> acceptByPeriod)
需要的时候
public void setAcceptByPeriod(Map<Integer, Integer> acceptByPeriod)
我在 Java 中得到了这个 class 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>
并且在 class 中,我将 acceptByPeriod 定义如下:
private Map<Integer, Integer> acceptByPeriod = new HashMap<>();
每当我 运行 查询 DepartmentPerson 时,我都会收到消息:“java.lang.IllegalArgumentException:参数类型不匹配”。这与 acceptByPeriod 映射有关,因为当我删除它时问题就消失了。数组 tbl_department_people_accept 上的所有 3 个字段都是 int 类型。我真的不明白出了什么问题;我之前在不同的 classes 中完成过这种类型的映射(使用
在这个post的帮助下找到了问题:IllegalArgumentException: argument type mismatch in Hibernate
问题不在于地图的类型,而在于它的 setter。我把它写成:
public void setAcceptByPeriod(HashMap<Integer, Integer> acceptByPeriod)
需要的时候
public void setAcceptByPeriod(Map<Integer, Integer> acceptByPeriod)