关于Mybatis的一对一和一对多问题
一对一:
column是你需要传的参数,这里我用的是键值对形式,所以子语句里的参数类型是map,这里只要是对应的即可.
一对多:
同理,在定义的resultMap里的加上如下一句:
其中的ofType和一对一的javaType一样,为对应的类名,其他的和一对一写法一样.
一对一:
在xml文件定义的resultMap里加上如下一句:
<association property="tindianatype" column="{id=typeid}" javaType="Tindianatype" select="getTindianatype"/>
其中property为你实体类里定义的别名,javaType为对应的类名:
private Tindianatype tindianatype;
select填写你子语句中的id
<select id="getTindianatype" parameterType="map" resultType="Tindianatype">
select * from tindianatype where id =${id}
</select>
column是你需要传的参数,这里我用的是键值对形式,所以子语句里的参数类型是map,这里只要是对应的即可.
还有需要注意的是主语句的返回类型必须要是你定义的resultMap的Id:
<resultMap id="BaseResultMap" type="Tindiana" >
<select id="findById" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
一对多:
因为返回的是多,所以实体类里定义需是集合类型
private List<Torderrole> torderroles;
同理,在定义的resultMap里的加上如下一句:
<collection property="torderroles" ofType="Torderrole" column="id" select="getTorderroles"/>
其中的ofType和一对一的javaType一样,为对应的类名,其他的和一对一写法一样.