começar a usar
simplest
documentação detalhada
simplest-jpa
O uso de multilocação requer 2 etapas:
- Configure a tabela e as colunas de inquilinos correspondentes nas propriedades.
- Configurar TenantFactory para injetar a fonte de dados do locatário
TenantFactory é usado para produzir o ID do inquilino ou para obter o ID do inquilino atual.
configuração
arquivo de propriedades
jpa:
properties:
hibernate:
session_factory:
statement_inspector: cn.soboys.simplestjpa.interceptor.TenantInterceptor #配置指定租户拦截器
# 需进行租户解析的租户表
tenant:
tables:
- cms_category
tenant-id-column: tenant_id
enableTenant: true
Dados de locatário personalizados
/**
* @author 公众号 程序员三时
* @version 1.0
* @date 2023/7/30 22:15
* @webSite https://github.com/coder-amiao
*/
@Configuration
public class TenantConfig implements TenantFactory {
@Override
public String getTenantId() {
return "8";
}
}
::: a dica será filtrada automaticamente
se getTenantId()
retornar vazia null
.
:::
Ignorar as condições do inquilino
Em alguns cenários, podemos precisar ignorar as condições do inquilino em operações como adição, exclusão, modificação e consulta. Neste momento, podemos definirCustomTenant
withoutTenantCondition
@Test
void countByExample() {
CustomTenant.withoutTenantCondition=true; //自定义不设置租户拦截
Category category = new Category();
category.setTitle("测试");
long count = categoryService.count(Example.of(category));
log.info("条件count{}", count);
}
mostrar
Exclua, modifique e consulte tabelas na tabela de configuração de atributo especificada. Trará as condições do inquilino.
Por exemplo, para excluir com base no ID, o SQL executado é o seguinte:
DELETE FROM tb_article where id = ? and tenant_id = ?