Bonjour, je voudrais simplement savoir s'il était possible de spécifier avant l'initialisation de l'EntityManager que l'on utilise pas le chemin du fichier de configuration par défaut (META-INF/persistence.xml) mais un autre.
merci
Version imprimable
Bonjour, je voudrais simplement savoir s'il était possible de spécifier avant l'initialisation de l'EntityManager que l'on utilise pas le chemin du fichier de configuration par défaut (META-INF/persistence.xml) mais un autre.
merci
Pour quelles raisons souhaites-tu modifier le chemin du persistence.xml?
Si c'est pour modifier une propriété du fichier tu peux faire ceci :
Code:
1
2
3
4 Map properties = new HashMap(); properties.put("toplink.ddl-generation", "drop-and-create-tables"); EntityManagerFactory emf = Persistence.createEntityManagerFactory("default", properties);
ok merci, je testerais ca quand j'aurais le temps. Sinon pour faire simple, la raison pour laquelle je voudrais changer le nom, c'est que j'ai des conflits sous WAS liés à l'ordre de chargement des lib (parent_first/parent_last).
Hmmm si je me trompe pas, le bout de code permet simplement de remplacer la partie
du persistence.xml. C'est n'est pas ce que je chercher à faire, je voudrais pouvoir changer son nom/emplacement.Code:
1
2
3
4
5 <persistence-unit> <properties> <!-- ... --> </properties> </persistence-unit><!-- ...
Je trouverais étrange que ca ne soit pas prévu, en tout cas, malgrès mes recherches j'ai pas réussi.
Ton persistence.xml doit être dans le répertoire meta-inf.
Maintenant ce répertoire meta-inf peut être dans le cas d'une appli JEE :
- A la racine d'un fichier EJB-JAR.
- A la racine du repertoire WEB-INF/classes ou d'un fichier WAR.
- A la racine d'un jar du répertoire WEB-INF/lib .
- A la racine d'un jar lui même à la racine de l'EAR.
- A la racine d'un jar dans le répertoire library de l'EAR.
T'es sur qu'aucune des ces possibilités standards ne peut régler ton problème.
Je l'avais déjà réglé regroupant le persistence contenu dans certaines lib dans un persistence a un niveau plus élevé du classpath.
Maintenant (même si ca marche) je prefererais utiliser un autre nom pour le fichier de config. C'est juste que d'un point de vu "logique" la configuration (le mapping) devrait se trouver dans mes lib qui accèdent aux données, et pas dans les couches supérieures.