2010-11-29 40 views
0

Je suis en train de faire une jointure sur 2 entités utilisant la requête suivante -entités EJB3 - Joignez-vous sur les entités dans différents fichiers jar

String qry = "SELECT o.attr1, o.attr2, o.attr3, r.description FROM AttrEntity o, DescEntity r WHERE (o.code=r.code)"; 
Query query = entityManager.createQuery(qry); 
resultList = query.getResultList(); 

Le problème est que le AttrEntity et DescEnity sont dans différents fichiers jar donc quand J'exécute la requête J'obtiens une exception disant que l'entité DescEntity n'a pas été trouvée. Y at-il de toute façon que je puisse exécuter une telle requête sans modifier mes fichiers jar?

Répondre

0

Vous avez probablement défini une unité de persistance dans l'un de ces fichiers (probablement contenant AttrEntity). Dans cette unité de persistance, vous avez peut-être répertorié les classes appartenant à cette unité centrale. Je ne suis pas sûr que cela soit autorisé par la spécification, mais vous pouvez essayer de changer le MANIFEST.MF pour le jar contenant le PU, en ajoutant une entrée "classpath" pointant vers l'autre jar contenant DescEntity.

Mais vraiment, si cela fonctionne, considérez-le comme une solution de contournement UGLY. La solution appropriée serait de les garder dans le même pot.

0

J'ai trouvé la réponse - J'ai besoin d'ajouter l'étiquette - secondJar.jar au fichier persistence.xml du premier fichier jar.