Bonjour,
Est-il possible de faire quelque chose comme ceci avec une requête HQL:
select * from (select * from matable)
Bien sûr ma requête est un peu plus intelligente que ça mais c'est juste pour l'exemple :)
Version imprimable
Bonjour,
Est-il possible de faire quelque chose comme ceci avec une requête HQL:
select * from (select * from matable)
Bien sûr ma requête est un peu plus intelligente que ça mais c'est juste pour l'exemple :)
non, ce n'est pas autorisé ni en SQL ni en HQL.
Désolé de te contredire mais c'est tout à fait autorisé en SQL.
Je crois qu'il est recommandé de nommer la table destination par contre:
Ca donnerait donc plutôt ça en SQL:
select * from (select * from table_src) table_dest
erf oui, mais ca ne fait pas ce qu'il pense manifestement que ça fait (prendre les noms présent dans table_src, comme T1,T2,T3, et faire un select * from T1,T2,T3 ;)
select * from (select * from table_src); c'est exactement la même chose que faire select * from table_src ;)
Si le but est de choisir les noms de table, ça peut se faire mais pas directement; en fait ça se fait en PL/SQL (et en hibernate, ça se ferait en faisant une première requête, et en générant à partir d'icelle une deuxième).
Si la question était "peut-on faire un sous-select standard", la réponse est oui.
Oui c'est bien la question.Citation:
Si la question était "peut-on faire un sous-select standard", la réponse est oui.
Maintenant j'en ai une 2ème: Comment? :)
Comme en SQL, mais en HQL ... Je ne vois pas comment décrire mieux.
http://docs.jboss.org/hibernate/core...hql-subqueries
Je ne dois vraiment pas être doué en HQL parce que n'arrive pas à écrire la requête.
J'ai essayé ceci:
Sans succès :'(Code:select t2.id from (select t1.id from matable as t1) as t2
je précise que id est une colonne appartenant à matable.
Rei Ichido, dans les exemples de ton lien, tous les sous-select ont lieu après le where. Moi, je veux faire le sous-select juste après le from (pour le gérer en tant que sous-table en gros).
On ne peut pas faire de sous-requête en Hql apres le from...
Uniquement apres select et where....
issu du document joint dans le post plus haut....
"Note that HQL subqueries can occur only in the select or where clauses. "
OK, comme ça je suis fixé au moins.
A la Poubelle Hibernate.
notez que c'est assez logique dans le sens ou HQL fait ses requetes sur sur des Objets, or le résultat de votre sous requete n'est pas nécessairement un objet Hibernate :roll:
Vous pouvez toujours aussi faire des sous requetes en SQL à partir d'hibernate (via les natvie query). Vous n'aurez plus le résultat sous forme d'objet, mais de toutes facons, ca ne correspondait déjà plus à des objets ;)