web-dev-qa-db-fra.com

Plusieurs balises d'unité de persistance dans un fichier persistence.xml

Je travaille maintenant avec un projet JPA 2.0 (dans Eclipse Indigo). Dans mon fichier persistence.xml, je dois spécifier deux balises <persistence-unit>, car j'ai deux bases de données différentes avec lesquelles travailler. En faisant cela, j'obtiens l'avertissement suivant:

Plusieurs unités de persistance définies - seule la première unité de persistance sera reconnue

Encore plus, si je crée mes entités et les mets dans ma deuxième <persistence-unit>, j'obtiens une erreur disant que mon entité n'est pas déclarée dans une unité de persistance:

La classe "my.package.MyClass" est mappée, mais n'est incluse dans aucune unité de persistance

Alors, la question est: est-il possible de déclarer (et de les utiliser comme prévu) de nombreuses balises <persistence-unit> dans le fichier persistence.xml? Si oui, que dois-je faire pour obtenir le comportement exact?

Merci!

32
artaxerxe

JPA ne limite pas le nombre d'unités de persistance définies dans persistence.xml. Cet avertissement parle simplement de la limitation de l'outil dans Eclipse IDE. Ceci est dit par exemple ici http://www.Eclipse.org/webtools/dali/gettingstarted.php :

Actuellement, Dali ne prend en charge qu'une unité de persistance et un fichier XML de persistance par projet. D'autres configurations peuvent exister dans un projet JPA, mais la validation et le traitement des valeurs par défaut peuvent ne pas être corrects lorsque plusieurs unités de persistance sont utilisées.

Je suppose qu'il n'y a aucun moyen connu d'obtenir ce travail dans Eclipse IDE.

42
Mikko Maunu

Bien qu'il s'agisse de JPA valide, vous pouvez également désactiver les notifications d'erreur (ennuyeuses) qui en résultent pour chaque projet en accédant à

Project Properties => JPA => Errors/Warnings

Activer Enable project specific settings et sous Type, modifiez le niveau de notification pour Class is mapped but is not in a persistence unit de Error à tout ce avec quoi vous êtes à l'aise.

Mise à jour pour Eclipse Luna:

L'emplacement et le nom du paramètre ont changé dans Luna. Le nouvel emplacement est:

Project Properties => JPA => Errors/Warnings

Vérifier Enable project specific settings

Développer le groupe Project

Changement Multiple persistence units defined: à Ignore.

enter image description here

29
VH-NZZ