2017-07-21 1 views
0

J'ai rencontré un problème avec une instruction de jointure simple et silencieuse.HQL Join ne fonctionne pas

Il existe une table A et une autre table B. Le tableau A a un idNumber. Le Tableau B a un number. Maintenant, je veux rejoindre ce tables sur idNumber=number

Ce que je fais est: -

A.executeQuery("Select a from A a inner JOIN B b ON a.idNumber=b.number") 

Malheureusement, je reçois une liste vide comme résultat, mais cela est faux. Quelqu'un a une idée de ce que je fais de mal?

Répondre

0

Il semble que vous exécutiez une requête sql. Donc, pour lancer une requête sql, vous devez définir les colonnes que vous sélectionnez.

A.executeQuery("Select a.* from A a inner JOIN B b ON a.idNumber=b.number") // don't forget * after a 

PS. Pour la requête hql, j'ai besoin de connaître la structure de votre classe. HQL (Hibernate Query Language) est un langage de requête orienté objet, similaire à SQL, mais au lieu d'opérer sur des tables et des colonnes, HQL fonctionne avec des objets persistants et leurs propriétés. Supposons que la classe A ait une instance de B. La requête JOIN sera la suivante.

Select a from A a inner JOIN a.B 
0

A a une instance de B. B est dans le paquet a.package.name Je viens d'essayer

A.executeQuery("Select a from A a inner JOIN a.package.name.B b where a.idNumber=b.number") 
+0

Sélectionnez un événement de a, package.name.B b où b.number = a.idNumber Retourne une liste vide. La taille devrait être un. – Secondwave

0

Le problème est que l'on table était dans un plug-in et extern il n'a pas été possible de les rejoindre ici. J'ai dû faire deux demandes.