Comment utiliser JPA @Column(unique = true) dans un environnement multi-locataire de l'environnement?
Je veux convertir ma demande de support multi-tenant, à l'aide de tables partagées (par exemple, chaque tableau devient un locataire id). Évidemment, je ne voudrais pas être en mesure d'utiliser @Column(unique = true)
plus, car il permettrait de renforcer l'unicité à travers tous les locataires, que je ne veux pas.
Je suis en utilisant Glassfish 3.1.1 avec EclipseLink. Est-il un moyen de faire @Column(unique = true)
de la force de l'unicité par le locataire (plutôt que par table). Ou dois-je appliquer ce dans la logique d'affaires?
OriginalL'auteur Theo | 2011-07-22
Vous devez vous connecter pour publier un commentaire.
Il est également possible de spécifier contrainte d'unicité sur puis
@Table
annotation, par exempleOriginalL'auteur Theo
EclipseLink supporte le multi-tenancy, en utilisant des annotations (
@Multitenant
,@TenantDiscriminatorColumn
et@TenantDiscriminatorColumns
) ou l'équivalent attributs danseclipselink-orm.xml
fichier, depuis la version 2.3.0. Plus d'informations sur la façon d'utiliser cette fonctionnalité prise en charge est disponible dans le EclipseLink wiki; un associé screencast peut être trouvé sur Youtube.Je suppose donc que c'est tout à fait impossible de le faire avec le
@Unique
annotation seul.Je n'ai pas essayé quelque chose au-delà de la vidéo, mais si vous regardez les exemples soigneusement, vous pouvez définir le locataire Id (
eclipselink.tenant-id
) au moment de l'exécution, si c'est ce que vous vouliez dire par l'ajout de locataires au moment de l'exécution.Ouais, il s'est avéré, vous pouvez définir la propriété au moment de l'exécution.
OriginalL'auteur Vineet Reynolds