2

我正在尝试使用 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 属性。

4

0 回答 0