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.

0 ответов

Другие вопросы по тегам