制約がテナントごとにのみ適用されるディスクリミネーターによるマルチテナンシーを使用する場合、永続化可能なクラスの列に単一性制約を指定することは可能ですか? (つまり、異なるテナントに同じ値を使用しても問題ありません) ?
それとも、これをアプリケーション レベルで強制する必要がありますか?
制約がテナントごとにのみ適用されるディスクリミネーターによるマルチテナンシーを使用する場合、永続化可能なクラスの列に単一性制約を指定することは可能ですか? (つまり、異なるテナントに同じ値を使用しても問題ありません) ?
それとも、これをアプリケーション レベルで強制する必要がありますか?
はい、可能です。"内部" テナント列はメンバーとして認識されないため、列に一意の制約を指定することが条件です。
例 :
<extension vendor-name="datanucleus" key="multitenancy-column-name" value="tenant"/>
<extension vendor-name="datanucleus" key="multitenancy-column-length" value="255"/>
<unique name="UNIQUE_NAME_PER_TENANT">
<column name="tenant"/>
<column name="name"/>
</unique>