我正在尝试使用 GORM 6.0.0.RC2 实现多租户应用程序。当通过 GORM 的 save() 方法保存实现 MultiTenant 的域类时,tenantId 属性不会设置为当前的tenantId。它始终为 null,因此验证失败。但是 Tenants.currentId() 根据指定的租户解析器类返回正确的租户 ID。
在保存域类的实例时设置tenantId 是应用程序的责任,还是 GORM 会在保存之前通过适当地设置属性来处理它?
我的域人员类
class Person implements MultiTenant<Person> {
String id
String tenantId
String name
}
并且保存 Person 类实例的代码是
new Person(name: "pmohan").save(failOnError: true)
它总是失败并出现验证异常,指示tenantId 为空。但是租户解析器根据下面的配置解析到正确的tenantId。
gorm:
multiTenancy:
mode: DISCRIMINATOR
tenantResolverClass: com.MyTenantResolver
Tenants.currentId 也按预期返回值。我期待 save() 方法根据 MyTenantResolver 类自动填充tenantId 属性。