mybatise flex 一对多
时间: 2023-12-04 16:37:10 浏览: 63
mybatis-plus中的@TableName注解可以指定表名,@TableId注解可以指定主键字段,@TableField注解可以指定非主键字段。在一对多的情况下,可以使用@TableName注解指定主表名,使用@TableField注解的exist属性指定从表关联主表的外键字段名,使用@TableField注解的value属性指定从表关联主表的主键字段名。
例如,有一个用户表和一个订单表,一个用户可以有多个订单,订单表中有一个user_id字段表示该订单属于哪个用户,可以使用如下代码实现一对多查询:
```java
@TableName("user")
public class User {
@TableId
private Long id;
private String name;
@TableField(exist = false)
private List<Order> orders;
// getter/setter
}
@TableName("order")
public class Order {
@TableId
private Long id;
private Long user_id;
private String order_no;
// getter/setter
}
public interface UserMapper extends BaseMapper<User> {
@Select("select * from order where user_id=#{userId}")
List<Order> selectOrdersByUserId(Long userId);
}
```
在查询用户时,使用@Select注解查询该用户的所有订单,并将订单列表赋值给用户对象的orders属性即可。
阅读全文