Configuration de pureQuery pour l'utilisation de plusieurs collections de modules DB2
Configurez une application JPA (Java™ Persistence API) pureQuery pour utiliser des collections de modules DB2 multiples.
Pourquoi et quand exécuter cette tâche
Des copies multiples d'un schéma de base de données peuvent exister. Cette situation peut arriver dans un schéma de base de données partitionné où il y a une base de données pour les données relatives aux employés de la côte est et une autre base de données relative aux employés de la côte ouest. Dans ce cas, les deux bases de données ont le même schéma. Il peut y avoir deux bases de données avec deux catalogues de bases de données. Ou il peut y avoir une seule base de données, auquel cas, le qualificatif de haut niveau des noms de table (le nom du schéma) doit être différent. Etant donné que les schémas sont identiques, il peut y avoir un ensemble unique d'entités JPA utilisées pour accéder aux deux ensembles de données. Plusieurs possibilités existent pour configurer JPA et gérer ces situations.
- Lorsqu'il y a deux unités de persistance avec des noms de source de données différents, utilisant un SQL statique, deux ensembles de modules DB2 existent : un module DB2 dans chaque base de données. Comme il y a deux unités de persistance, il y a deux fichiers persistence_unit_name.pdqxml pour l'environnement de phase d'exécution JPA.
- Si les tables sont dans une seule base de données, deux unités de persistance peuvent ensuite être utilisées. Dans ce cas, la source de données est la même dans les deux unités de persistance. Toutefois, la propriété du nom du schéma wsjpa.jdbc.Schema doit être différente. Il existe deux ensembles des modules DB2. Chaque module DB2 doit avoir un nom de module différent ou un nom de collection de modules différent. wsdb2gen et la commande de liaison DB2 ont des options permettant de spécifier les noms de la collection de modules et du module.
- Vous pouvez créer une unité de persistance unique, ce qui élimine le besoin de garder deux configurations d'unité de persistance et d'exécuter la commande wsdbgen plusieurs fois. Cette configuration requiert un nom de module commun. Les noms de la collection de modules doivent donc être différents. Utilisez la méthode createEntityManager(Map map)où la mappe contient les valeurs des propriétés wsjpa.jdbc.Schema et wsjpa.jdbc.CollectionId pour spécifier le nom de la collection de modules et le nom du schéma.