mybatis中注解一对多查询

主要在于映射关系
在这里插入图片描述
property是实体类属性名
column是这个子查询方法与父查询连接的字段
如果出现查询后父字段为空的情况就单独再次指定一下关联关系
接着使用@Many注解指定子查询的方法
另外这里有Lazy可选,建议不要使用自己不懂什么作用的参数,不加Lazy即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
mybatis一对多查询可以使用注解实现。具体步骤如下: 1. 定义实体类 定义一个实体类,该实体类包含一个一对多的关联关系,如下所示: ```java public class Order { private Long id; private Date createTime; private List<OrderItem> orderItems; // 一对多关联关系 // getter和setter方法省略 } public class OrderItem { private Long id; private Long orderId; private String productName; private Integer quantity; // getter和setter方法省略 } ``` 2. 创建Mapper接口 创建一个Mapper接口,并使用注解定义一对多查询语句,如下所示: ```java public interface OrderMapper { @Select("select * from order where id = #{id}") @Results({ @Result(property = "id", column = "id"), @Result(property = "createTime", column = "create_time"), @Result(property = "orderItems", column = "id", many = @Many(select = "com.example.OrderItemMapper.findByOrderId")) }) Order findById(Long id); } public interface OrderItemMapper { @Select("select * from order_item where order_id = #{orderId}") List<OrderItem> findByOrderId(Long orderId); } ``` 在上面的注解,@Results定义了查询结果的映射关系,@Result用于映射查询结果的字段到实体类的属性。@Many注解用于定义一对多关联关系,指定了查询OrderItem的方法,以及通过哪个字段进行关联。 3. 调用Mapper接口 在业务逻辑调用Mapper接口,并传入查询参数,如下所示: ```java Order order = orderMapper.findById(1L); System.out.println(order.getId() + " " + order.getCreateTime()); for (OrderItem item : order.getOrderItems()) { System.out.println(item.getId() + " " + item.getProductName() + " " + item.getQuantity()); } ``` 通过调用OrderMapper的findById方法,可以查询到指定id的Order对象及其关联的OrderItem对象列表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YonChao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值