mybatis中collection的column传入多个参数问题
mybatis中collection的column传入多个参数值:标签属性:property: resultMap返回实体类中字段和result标签中的property一样column: 数据库的列名或者列标签别名,是关联查询往下一个语句传送值。注意:在处理组合键时,您可以使用column=“{prop1=col1,prop2=col2}”这样的语法,设置多个列名传入到嵌套查询语句。这就会把pro
·
mybatis中collection的column传入多个参数值:
标签属性:
- property: resultMap返回实体类中字段和result标签中的property一样
- column: 数据库的列名或者列标签别名,是关联查询往下一个语句传送值。注意:在处理组合键时,您可以使用column=“{prop1=col1,prop2=col2}”这样的语法,设置多个列名传入到嵌套查询语句。这就会把prop1和prop2设置到目标嵌套选择语句的参数对象中。
- javaType: 一般为ArrayList或是java.util.List
- ofType: java的实体类,对应数据库表的列名称,即关联查询select对应返回的类
- select: 执行一个其他映射的sql语句返回一个java实体类型
代码:
public class Order{
private Integer id;
private String orderNo; //订单编号
private BigDecimal amout; //总金额
private List<Food> foodList; //问题选项集合
//Getter和Setter省略
}
public class Food{
private String foodName; //食品名称
private Integer foodNum; //数量
private BigDecimal price; //单价
//Getter和Setter省略
}
//mapper.xml
<resultMap id="OrderMap" type="com.buchirourou.entity.Order">
<result property="id" column="id"></result>
<result property="order_no" column="orderNo"></result>
<result property="amout" column="amout"></result>
<collection property="foodList" //对应Order类中的集合属性名称
ofType="com.buchirourou.entity.Food" //对应关联查询的类
column="{orderId=id,orderNo=order_no}" //关联查询的sql传递参数
javaType="arraylist"
select="com.buchirourou.mapper.FoodMapper.findFood"> //对应查询的sql,我这是通过mapper类指向的mapper.xml
</collection>
</resultMap>
<resultMap id="FoodMap" type="com.buchirourou.entity.Food">
<result property="food_name" column="foodName"></result>
<result property="food_num" column="foodNum"></result>
<result property="price" column="price"></result>
</resultMap>
//主查询语句
<select id="findOrder" resultMap="OrderMap">
SELECT
id,
orderNo as order_no,
amout
FROM t_order
</select>
//关联查询语句
<select id="findFood" resultMap="FoodMap">
SELECT
food_name,
food_num,
price
FROM t_food
WHERE
order_id = #{orderId}
AND order_no = #{orderNo}
</select>
column="{orderId=id,orderNo=order_no}"
中orderId对应findFood中#{orderId}
的参数名称,id对应findOrder中select的id
,若在查询时给字段加别名正如orderNo对应findFood中#{orderNo}的参数名称,order_no对应findOrder中orderNo的别名order_no
更多推荐
已为社区贡献1条内容
所有评论(0)