Oracle® Fusion Middleware Oracle TopLink Java Persistence API (JPA)拡張機能リファレンス 12c (12.1.2) E48005-01 |
|
前 |
次 |
テナントごとの表マルチテナンシにより、アプリケーションの複数のテナントは、1つ以上のテナント固有の表にデータを分離できます。テナント表識別子は、テナントごとの表マルチテナンシ方針でテナント表と他のテナント表を区別する方法を指定します。
注釈要素
表2-69は、この注釈の要素を示しています。
表2-69 @TenantTableDiscriminatorの注釈要素
注釈要素 | 説明 | デフォルト |
---|---|---|
|
(オプション)テナント表識別子として適用されるコンテキスト・プロパティの名前 |
|
|
(オプション)永続性ユニットの表とともに使用するテナント表識別子のタイプ
|
|
使用方法
テナントごとの表マルチテナンシでは、テナントの表は、接頭辞または接尾辞のネーミング・パターンを使用して区別することで同じスキーマに存在できます。または、異なるスキーマに存在できます。テナント表識別子により、テナントの表を特定して他のテナントの表から分離するために、接頭辞または接尾辞のネーミング・パターンを使用するか異なるスキーマを使用するかが特定されます。タイプは次のとおりです。
スキーマ: テナント表識別子をスキーマとしてすべてのマルチテナント表に適用します。この方針には、適切なデータベース・プロビジョニングが必要です。
接尾辞: テナント表識別子を接尾辞としてすべてのマルチテナント表に適用します。これはデフォルトの方針です。
接頭辞: テナント表識別子を接頭辞としてすべてのマルチテナント表に適用します。
テナント表識別子は、エンティティ・レベルまたはマップされたスーパークラス・レベルで指定することができ、常にMultitenant(TABLE_PER_TENANT)
とともに使用される必要があります。テナント表識別子のみの指定では不十分です。
@TenantTableDiscriminator
およびテナントごとの表マルチテナンシの使用の詳細は、「@Multitenant」を参照してください。
例
次の例に、SCHEMA
タイプの表識別子を示します。
例2-112 @TenantTableDiscriminator注釈の使用
@Entity
@Table(name=“EMP”)
@Multitenant(TABLE_PER_TENANT)
@TenantTableDiscriminator(type=SCHEMA, contextProperty="eclipselink.tenant-id")
public class Employee {
...
}
例2-113 <tenant-table-discriminator> XMLの使用
<entity class="Employee">
<multitenant type="TABLE_PER_TENANT">
<tenant-table-discriminator type="SCHEMA" context-property="eclipselink.tenant-id"/>
</multitenant>
<table name="EMP">
...
</entity>
関連項目
『Oracle TopLinkソリューション・ガイド』のマルチテナンシの使用に関する項
マルチテナントの例: http://wiki.eclipse.org/EclipseLink/Examples/JPA/Multitenant