TenantId равен нулю при сохранении сущности в многопользовательском приложении на основе дискриминатора в Grails 3.2 с GORM 6
Я пытаюсь реализовать приложение MultiTenant, используя GORM 6.0.0.RC2. Когда класс домена, который реализует MultiTenant, сохраняется с помощью метода save() GORM, свойству tenantId не присваивается текущий tenantId. Это всегда ноль и, следовательно, не проходит проверку. Однако Tenants.currentId () возвращает правильный идентификатор клиента на основе указанного класса распознавателя клиента.
Является ли приложение обязанностью установить tenantId для экземпляра класса домена, когда он сохраняется, или GORM позаботится об этом, настроив свойство перед сохранением?
Класс My Domain Person
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() автоматически заполнит свойство tenantId на основе класса MyTenantResolver.