2

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 プロパティを自動的に設定することを期待していました。

4

0 に答える 0