每个表都强制加tenant_id这个字段
@PostMapping
public void CreateSchool(@RequestBody SchoolDto schoolDto) {
School school = new School();
school.setName(schoolDto.getName());
school.setTenantId(1);//因为每个表都有这个字段,还需要在业务代码里逐个写,感觉很不优雅
schoolRepository.save(school);
}
以下是实体类
@Entity
@Table(name = "sc_school")
@Getter
@Setter
public class School extends BaseEntity {
@Column(name = "name")
public String name;
}
下面是基类
@MappedSuperclass
@Getter
@Setter
public class BaseEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
protected Long id;
@Column(name = "tenant_id")
protected Integer tenantId;//租户id,所有表都有这个字段
@Column(name = "create_time")
protected Date createTime;
}
需要实现写增删改查业务代码的时候,不需要去考虑这个租户id,需要在某个地方获取前端请求的header里的租户Id,然后自动加上这部分的处理。
不太清楚您那边的逻辑。如果整个系统使用的租户是一样的话建议写在配置文件 然后基类读取设置默认值就可以了(注解)