mybatis-collection
阿新 • • 發佈:2018-12-16
一、場景
行業查詢,一級行業,二級行業
二、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裡面再重複一遍,個人不喜歡這種方式,覺得上面這種方式清晰明瞭