关于mybatis中collection出现的问题
我在代码中的collection标签中使用了javaType导致映射是失败的,我使用了ofType就可以了,下面介绍这两个标签之间的区别。
ofType 和 javaType 属性都用于指定集合或关联对象的类型,但它们的使用方式和含义稍有不同。
ofType属性:用于指定集合元素或关联对象的类型。它接受一个 Java 类型的全限定名,表示集合中元素的实际类型或关联对象的实际类型。例如,ofType="com.lxz.user.pojo.Permission"表示集合中的元素是com.lxz.user.pojo.Permission类型的对象。
在使用 <collection> 标签时,ofType 属性通常用于指定集合中元素的类型。这样 MyBatis 就知道如何将查询结果映射到相应的对象类型上,并创建正确类型的集合。
javaType属性:用于指定集合或关联对象自身的类型。它接受一个 Java 类型的全限定名,表示集合或关联对象的实际类型。例如,javaType="java.util.List"表示该集合字段的类型是java.util.List。
前面表示的是集合中有什么元素,而下面表示的是集合是什么类型的。
ofType的用法:
<collection property="permissions" ofType="com.lxz.user.pojo.SysRes">
<id property="id" column="res_id"/>
<result property="resName" column="res_name"/>
<result property="resDesc" column="res_desc"/>
</collection>
javaType的用法:
<collection property="permissions" ofType="com.lxz.user.pojo.SysRes" javaType="java.util.List">
<result property="resName" column="res_name" javaType="java.lang.String"/>
<result property="resDesc" column="res_desc"/>
</collection>



![【PWN · 栈迁移】[CISCN 2019东南]PWN2](https://img-blog.csdnimg.cn/400c29062d034e52a0fdaa185fb507fa.png)
















