多租户
说明
多租户就是类似多个子系统;多租户应该是数据绝对隔离的
多租户是围绕实体进行自动设置租户ID,通常在 from(实体类),join(实体类),delete(实体类),update(实体类)
示例
实体类
java
@Data
@Table
public class SysUser {
@TableId
private Integer id;
private String userName;
private String password;
private Integer roleId;
private LocalDateTime createTime;
@TenantId
private Integer tenantId;
}
Mapper
继承 MybatisMapper 即可
java
public interface SysUserMapper extends MybatisMapper<SysUser> {
}
设置租户ID
java
TenantContext.registerTenantGetter(() -> {
return 2;
});
如果想临时关闭
java
TenantContext.registerTenantGetter(() -> {
if(临时关闭){
//返回null 即可
return null;
}
return 2;
});
如何使用
java
@Service
public class Test{
@Autowired
private SysUserMapper sysUserMapper;
public void demo() {
SysUser sysUser=new SysUser();
sysUserMapper.save(sysUser);
}
}
save时 tenantId 字段会自动填充,update、delete自动会增加租户ID条件
前往@TenantId 查看