m ybatis注解开发一对多
时间: 2023-10-09 08:08:24 浏览: 64
MyBatis 注解开发一对多操作需要使用 @OneToMany 和 @ManyToOne 注解来标识关系。下面是一个示例:
首先,定义两个实体类:Order 和 OrderItem。
```java
public class Order {
private Integer id;
private String orderNo;
private List<OrderItem> orderItems;
// getter 和 setter 略
}
public class OrderItem {
private Integer id;
private Integer orderId;
private String productName;
private Integer productCount;
// getter 和 setter 略
}
```
接着,在 OrderMapper 中定义查询方法,使用 @Results 和 @Result 注解映射结果集。
```java
public interface OrderMapper {
@Select("select * from orders where id = #{id}")
@Results({
@Result(property = "id", column = "id"),
@Result(property = "orderNo", column = "order_no"),
@Result(property = "orderItems", column = "id",
many = @Many(select = "com.example.mapper.OrderItemMapper.findByOrderId"))
})
Order findById(Integer id);
}
```
在上面的代码中,@Many 注解用于标识一对多关系,并指定了查询 OrderItem 的方法 findByOrderId。
最后,在 OrderItemMapper 中定义 findByOrderId 方法,查询对应订单的所有订单项。
```java
public interface OrderItemMapper {
@Select("select * from order_items where order_id = #{orderId}")
List<OrderItem> findByOrderId(Integer orderId);
}
```
这样,就完成了一对多关系的注解开发。
阅读全文