GORM 6.0.0.RC2 を使用して MultiTenant アプリケーションを実装しようとしています。MultiTenant を実装するドメイン クラスを GORM の save() メソッドで保存すると、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 が null であることを示す検証例外で常に失敗します。ただし、以下の構成に従ったテナント リゾルバーは、正しいテナント ID に解決されます。
gorm:
multiTenancy:
mode: DISCRIMINATOR
tenantResolverClass: com.MyTenantResolver
また、Tenants.currentId は期待どおりの値を返します。MyTenantResolver クラスに基づいて、 save() メソッドが tenantId プロパティを自動的に設定することを期待していました。