mybatisplus的多表查询一对多
时间: 2024-09-03 09:00:42 浏览: 43
MybatisPlus是一个基于MyBatis的ORM框架,它简化了数据库操作,包括处理常见的CRUD操作和复杂的数据关联查询。在一对多的关系中,比如一个用户可以有多篇文章,MybatisPlus支持通过关联查询一次性获取所有数据。
对于一对多的多表查询,你可以使用`@TableId`注解标注主表的主键字段,并在关联的子表上添加`@References`注解指定外键关系到主表。例如:
```java
// 用户实体 User
@Table(name = "user")
public class User {
@TableId("id") // 主键字段
private Long id;
private String name;
// 子表 Article 的引用
@References(name = "userId", referenceColumn = "user_id") // userId字段对应User.id
private List<Article> articles;
}
// 文章实体 Article
@Table(name = "article")
public class Article {
private Long id;
private String title;
private Integer userId; // 外键,关联User表
}
```
当你需要查询某个用户及其所有的文章时,只需通过User对象的articles属性,MybatisPlus会自动生成SQL去关联查询:
```java
User user = userMapper.findById(1); // 获取ID为1的用户
List<Article> articles = user.getArticles(); // 这将一次性加载该用户的全部文章
```
阅读全文