Après un long googling, je ne trouve toujours pas de réponse définitive à cette question. Certains vieux articles/billets de blog que j'ai vu ne disent pas du tout. Certains disent oui si la base de données underling le supporte. Lequel est-ce? J'ai demandé sur le groupe nhusers sans réponse jusqu'à présent. Toute aide serait appréciée.NHibernate HQL prend-il en charge le mot-clé UNION ALL?
Répondre
HQL ne prend pas en charge union
ni intersect
. Vous pouvez probablement y parvenir via Criteria
ou SQL natif.
Je l'ai lu quelque part que ce ne est pas même si je ne peux pas comprendre pourquoi. La meilleure façon de voir est de l'essayer soi-même ...
NHibernate ne supporte pas l'union. Il y a toujours un type dans un résultat.
Ce que vous pouvez faire est une requête à une classe de base ou une interface. NHibernate effectuera une union pour obtenir toutes les valeurs de toutes les tables où les entités sont mappées.
Il existe également la stratégie de mappage union-subclass
, qui implique également l'existence d'une classe de base ou d'une interface.
Hey Stefan, en utilisant la classe interface/base vous voulez dire en utilisant des requêtes polymorphes, à droite ? J'ai suivi la stratégie polymorphique (une interface, deux classes concrètes) et la requête fonctionne bien mais IQueryable.Count() ne retourne pas la valeur désirée. Il ne renvoie que le nombre du premier type. Je me demandais si vous aviez jamais eu un tel problème? [Je pense que le problème du nombre pourrait être lié à NH-2500] – kaptan
Je ne pense pas qu'il est lié à NH-2500 (https://nhibernate.jira.com/browse/NH-2500), qui est lié à paramètres de requête. Le plus souvent, "select count" n'est pas implémenté de cette façon. Je n'ai trouvé aucune ressource pour cela. Vous pouvez le trouver dans le code. –
- 1. Populate Dataset avec UNION ALL requête SQL
- 2. NHibernate include/exclude all
- 3. Quelle approche ALL Union doit être utilisée?
- 4. UNION ALL performance dans SQL Server 2005
- 5. Comment sélectionner dans le jeu de résultats UNION ALL opération
- 6. NHibernate requêtes HQL
- 7. NHibernate HQL Subselect requêtes
- 8. Nhibernate hql rejoindre gauche
- 9. utilisant hql dans NHibernate
- 10. Nhibernate HQL where requête IN
- 11. Requête HQL bidirectionnelle avec NHibernate
- 12. Fonctions de date NHibernate HQL
- 13. NHibernate HQL Group par Entité
- 14. T-SQL pour HQL (NHibernate)
- 15. nHibernate HQL dynamic Instantiation question
- 16. Problème de logique NHibernate HQL
- 17. UNION ALL, champ texte et ORDER BY erreur
- 18. Est-ce que UNION ALL retourne un tableau?
- 19. LIMIT dans Postgres non pris en charge dans HQL?
- 20. NHibernate Supprimer avec date arithmatique en utilisant HQL
- 21. Nhibernate HQL SQL Server 2005/2008 CONTAINSTABLE
- 22. NHibernate: HQL équivalent des critères Expression.In()?
- 23. Problème conversion HQL LINQ to NHibernate
- 24. Effectuer un ALL UNION sur deux COUNT différents en utilisant Linq-To-Sql
- 25. Comment choisir Union ALL en fonction du paramètre transmis (besoin d'optimisation)?
- 26. NHibernate prend en charge le framework .NET 4.0?
- 27. Charge lente nhibernate one-to-one
- 28. Comment NHibernate charge les objets
- 29. Sélectionnez Haut (un certain nombre) avec UNION ALL et ORDER BY
- 30. NHibernate comment joindre à la table deux fois dans HQL
Le lien o.k.w le supprime. il ne soutient pas du tout l'union. – Dani
@Dani: Ici !!! http://stackoverflow.com/questions/247103/how-do-you-do-a-union-of-two-tables-in-nhibernate –