2016-05-27 1 views
0

Je veux conserver ma table dans deux bases de données différentes, (par exemple: HyperSQL et Mysql), mais je ne peux pas faire double emploi avec l'annotation de table comme ceci:JPA: une table avec deux bases de données différentes

@Entity(name="users") 
@Table(name = "users", schema = "[email protected]_pu") 
@Table(name = "users", schema = "[email protected]_pu") 
public class UserEntitie implements Serializable {} 

Have toute idée, comment puis-je le faire sans dupliquer ma classe de beans

Répondre

3

C'est pourquoi certaines personnes ont recommandé de ne pas mettre d'informations de schéma dans les annotations. Utilisez orm.xml pour spécifier les informations de schéma (nom du schéma, nom de la table, nom de la colonne, etc.) et un orm.xml par magasin de données dans lequel le système est déployé. Clairement, cela signifie un EntityManagerFactory par magasin de données; vous ne pouvez pas avoir une classe persistée dans plusieurs banques de données avec le même EntityManagerFactory

En utilisant des annotations, vous ne pouvez spécifier qu'une seule fois et vous devez manuellement modifier les fichiers java à redéployer.

+0

Peut-être que ce n'est pas possible d'utiliser orm.xml, parce que je travaille avec kundera comme un cadre, pas hiberner, regardez: https://github.com/impetus-opensource/Kundera/issues/276 –

+1

Si votre APP Le fournisseur prétend être conforme à la norme JPA (ce qu'il fait), il devrait alors prendre en charge orm.xml. Étant donné que votre fournisseur ne prend apparemment pas en charge orm.xml (fonctionnalités de base), il doit supprimer toutes les déclarations relatives à la compatibilité avec JPA (afin de ne pas perdre de temps pour les utilisateurs). Peut-être leur dire cela. JPA a eu orm.xml depuis JPA 1 !! –

+0

@BillyFrost pourquoi ne pas nous le dire. Je suis développeur Kundera. où avez-vous lu ** conforme signifie "supportant toutes les fonctionnalités" **? Kundera fait gagner du temps aux utilisateurs. Vérifiez c'est [page d'accueil] (https://github.com/impetus-opensource/Kundera), je suppose que vous pouvez voir clairement le nombre de Stargazers, les observateurs, etc –