两张表SystemParam(系统参数表) Suit (主题)
SystemParam 与 Suit 是多对一
Suit 的higerSuit字段是Suit 的父及主题id 是多对一,需要自连接查询,因为重名所以父表sql字段加别名
mapper方法
Systemparam selectJoinSuit(String strparamcode);
Po类
public class Systemparam {
//ManyToOne "主题"
private Suit suitobj;
private String strparamcode;
private String strenable;
private String strparamname;
//suit表主键
private String suit;
private String strparamvalue;
}
public class Suit {
//ManyToOne
private Suit suit;
//主键
private String strsuitcode;
private String strsuitname;
//父级id
private String higersuit;
}
resultMap的写法
<resultMap id="BaseResultMap" type="net.transino.model.Systemparam" >
<id column="strParamCode" property="strparamcode" jdbcType="VARCHAR" />
<result column="strEnable" property="strenable" jdbcType="VARCHAR" />
<result column="strParamName" property="strparamname" jdbcType="VARCHAR" />
<result column="suit" property="suit" jdbcType="VARCHAR" />
</resultMap>
resultMap 使用extends 继承上级map
<resultMap id="ResultMapWithBLOBs" type="net.transino.model.Systemparam" extends="BaseResultMap" >
<result column="strParamValue" property="strparamvalue" jdbcType="LONGVARCHAR" />
</resultMap>
<resultMap id="JoinsuitMap" type="net.transino.model.Systemparam" extends="ResultMapWithBLOBs" >
<association property="suitobj" javaType="Suit">
<id column="strSuitCode" property="strsuitcode" jdbcType="VARCHAR" />
<result column="strSuitName" property="strsuitname" jdbcType="VARCHAR" />
<result column="higerSuit" property="higersuit" jdbcType="VARCHAR" />
<association property="suit" javaType="Suit">
<id column="pstrSuitCode" property="strsuitcode" jdbcType="VARCHAR" />
<result column="pstrSuitName" property="strsuitname" jdbcType="VARCHAR" />
<result column="phigerSuit" property="higersuit" jdbcType="VARCHAR" />
</association>
</association>
</resultMap>
select写法
<select id="selectJoinSuit" resultMap="JoinsuitMap" parameterType="java.lang.String">
select
systempara0_.*,
suit1_.*,
suit2_.strSuitCode pstrSuitCode,
suit2_.strSuitName pstrSuitName,
suit2_.higerSuit phigerSuit
from SystemParam systempara0_
LEFT OUTER JOIN
Suit suit1_
ON systempara0_.suit=suit1_.strSuitCode
LEFT OUTER JOIN
Suit suit2_
ON suit1_.higerSuit=suit2_.strSuitCode
WHERE
systempara0_.strParamCode=#{strparamcode,jdbcType=VARCHAR}
</select>