mybatisplus根据父类自动填充代码演示
时间: 2024-09-27 17:00:47 浏览: 42
MyBatisPlus是一个基于MyBatis的ORM框架增强工具,它简化了数据持久层的操作,支持通过注解的方式自动生成大部分基础增删改查的SQL代码。当涉及到继承关系时,MyBatisPlus提供了一种特性,即"懒加载父类字段"(也叫"SuperColumn"),可以让你在定义子实体类时,只包含实际需要的数据,并自动从父类中获取其他公共属性。
例如,假设有一个`User`父类,包含了通用的用户信息如`id`、`username`等;然后有两个子类`Admin`和`NormalUser`,它们分别添加了一些特有的字段。在创建这两个子类的Mapper文件和实体类时,你可以使用MyBatisPlus的注解`@TableField(parent = true)`标记那些从父类继承过来的字段:
```java
// 父类 User
@Table("user")
public abstract class User {
@Id
private Long id;
private String username;
// 其他公共字段...
}
// 子类 Admin,继承User并增加adminRole字段
@Table("admin")
@Data
@TableName("admin")
public class Admin extends User {
private Integer adminRole; // 自动填充
@TableField(parent = true) // 标记为懒加载父类字段
private String password;
}
// 子类 NormalUser,同理
@Table("normal_user")
@Data
@TableName("normal_user")
public class NormalUser extends User {
private String email;
@TableField(parent = true)
private String phone;
}
```
在编写Repository或者Service层的时候,你可以直接操作`Admin`或`NormalUser`对象,MyBatisPlus会处理好父类字段的查询。注意,只有在真正需要访问这些字段的时候,才会触发数据库查询,提高了效率。
阅读全文