mybatis 对象 List List属性 映射

今天,在使用resultMap 的时候,遇见一个需求。就是一个bean类 有一个List的属性

bean类

public class ApplyModel {
    private String id;
    private String name;
    private List<String> groups;
    //省略setter getter 方法 
}

可以看见 有一个List属性
在mapper里面 用反射的话,使用如下

    <resultMap id="apply" type="com.example.sercurity.entity.ApplyModel">
        <id column="id" property="orgUserId"/>
        <result column="name" property="name"/>
        <collection property="groups" ofType="string" javaType="arraylist">
            
            <constructor>
                <arg column="group_name"/>
            constructor>
        collection>
    resultMap>

不再使用< result >标签,而是使用< constructor >。
这里简单提一下,这两个的区别,

  1. < result > 是属性映射。当要映射的类,具有一个属性时候,有setter getter方法 就可以使用这个
  2. < constructor > 是构造方法,适用于上面String类这种没有setter getter方法的类

因为String只有构造方法可以赋值,所以 使用< constructor >标签

总结

多给自己五分钟的时间,就可以变得很轻松。不要那么累

你可能感兴趣的:(java开发)