1. 程式人生 > >mybatis-collection

mybatis-collection

一、場景

行業查詢,一級行業,二級行業

二、POJO

@Getter
@Setter
public class XXXEntity implements Serializable {
    private Integer id;
    private String name;
    private Integer parentId;
    private Integer level;
    // 節點是否展開,true展開,false摺疊
    private boolean open;
    private List<XXXEntity> second;
}

三、mapper

一對多的ResultMap

<resultMap id="SecondResultMap" type="com.xxx.xxx.entity.XXXEntit ">
    <id column="pkid" jdbcType="INTEGER" property="id"/>
    <result column="trade_tag" jdbcType="VARCHAR" property="name"/>
    <result column="parent_id" jdbcType="INTEGER" property="parentId"/>
    <result column="level" jdbcType="INTEGER" property="level"/>
    <collection property="seconds" ofType="com.xxx.xxx.entity.XXXEntity"
        column="pkid" select="getSecondList">
    </collection>
</resultMap>
<select id="getSecondList" resultMap="BaseResultMap" parameterType="java.lang.Integer">
    select
       <include refid="Base_Column_List"></include>
    from trade_info
    where level = 2 AND parent_id = #{pkid}
</select>

還有另一種寫法,是將id,result在collection裡面再重複一遍,個人不喜歡這種方式,覺得上面這種方式清晰明瞭