Dans une application Web à l'aide de STRUTS2 EJB Hibernate, est-il possible de dire à l'application de trouver ou de créer une entité pour un nom d'unité de persistance spécifique, écrit dans J'ai deux unité de persistance dans Pour pouvoir disparaître, je veux dire, j'ai essayé ceci; p> et ne fonctionne pas. Puis essayé ceci et etc .. p> et aussi j'ai essayé ceci ci-dessus avec "l'unité =." Au lieu de "Nom =." Mais tout ce qui est fonctionné pour moi ... p> <. exclude-classes non enregistrées> true <
a résolu mon problème p> p> persistence.xml code> fichier code> le temps de déploiement?
persistance.xml code> et une source de données
(y compris deux «local-tx-datasource») fichier XML sous le nœud JBoss. P>
3 Réponses :
Je ne suis pas au courant d'une syntaxe au niveau de l'entité permettant de l'attribuer à une unité de persistance. P>
Je ne suis pas sûr d'avoir compris ce que vous essayez de faire, mais si vous souhaitez obtenir un gestionnaire d'entité pour une unité de persistance spécifique injectée, vous devez faire: Strike> P> @Stateless
public class FooBean implements Foo {
@PersistenceContext(unitName="MyPu1")
EntityManager em1;
// ...
}
Au début, merci pour votre réponse. Comme nous le savons, quand j'ajoute une @enty Anno. Pour une classe, il recherchera et devrait créer la table dans la DB juste pendant le temps de déploiement. Dans ma candidature, toutes les entités sont recherchées dans une seule persévuration et c'est le mauvais. Je veux dire, je veux que mes entités soient recherchées ou créées dans une autre DB spécifiée dans l'autre persévuration. En conséquence, je souhaite dire que mon application que les entités sélectionnées doivent être recherchées ou créées pour uniquement l'objet de persévérance sélectionné (qui inclut les paramètres de DB à droite). Aucune idée? Merci
BTW, il vaut la peine de raconter à nouveau que j'ai deux unités de persistance de persistance.xml. Je veux dire, j'ai deux paramètres de connexion DB dans mon application et je souhaite utiliser l'une ou l'autre dépendent des entités que je veux. Je veux pouvoir dire: "Hey, vous devriez voir cette entité comme une table dans celle de cette dB (car elle est déjà là) que vous pouvez trouver les paramètres de la DB dans ce nom d'unité de persistance! Ainsi, utilisez cette persistance -unit pour cette entité "
@pascal thivent p>
Je n'ai pas essayé d'utiliser plusieurs entitysmanager à la fois, mais en regardant le problème mentionné ci-dessus, cela peut aider si cela fonctionne. P>
@PersisticCecontext (UNITNAME = "MYPU1")
EntityManager EM1; code> p>
@PersistCeContext (UNITNAME = "MYPU2")
EntityManager EM2; code> p>
Eh bien, c'est exactement ma suggestion. Mais il semble que l'OP cherche quelque chose d'autre.
Merci Nayan. Cependant, le problème ne concerne pas l'injection d'entitémanager en effet. J'ai ajouté un commentaire à la première réponse ci-dessus. Si vous avez une idée du problème que j'ai mentionné, je serais ravi d'entendre ça.
@Downvoter OP a clarifié dans un commentaire qui était différent de la question initiale; Ce qui s'est mal passé pour bullener inutilement.
Qu'est-ce que vous cherchez est probablement vérifier la documentation sur jboss.org: p> Dans ma configuration, j'ai eu deux bases de données (disons A et B) et je voulais deux unités de persistance distinctes, où l'une contient toutes les entités, mais tandis que l'autre unité de persistance contient l'entité restante. Ma persistance.xml ressemble à ceci: p> p> p>
Pourriez-vous confirmer que vous avez combiné le True exclude-classes non enregistrées> code> avec la liste Toutes les classes d'entité ( com.mycompany.foo classe > code> etc.)? Modifiez de préférence cette information dans la partie [résolue] b> partie de votre question.