J'ai modélisé toutes mes tables et j'ai déjà porté la plupart de mes requêtes en utilisant des critères détachés. Tout fonctionne très bien mais je suis à un point où je ne sais pas comment avancer. J'ai une sous-requête qui utilise la clause "connect by" d'Oracle. Comment les développeurs surmontent-ils généralement cette limitation de Castle/NHibernate? J'utilise la dernière version de NHibernate.Quelle est la meilleure façon d'utiliser des fonctions SQL non prises en charge ou des clauses avec Castle/NHibernate?
1
A
Répondre
1
Si vous vraiment besoin d'utiliser connect by
, vous pouvez toujours utiliser une requête SQL (et il y a un tout chapter à ce sujet). Toutefois, étant donné que NHibernate utilise le modèle Identity Map, il est généralement plus productif de charger simplement les objets et de laisser les relations être établies en mémoire.
Avez-vous un exemple de chargement de relations parent/enfant avec l'utilisation du modèle de mappage d'identité? Je ne suis pas sûr si vous vouliez dire faire une boucle dans chaque rangée pour trouver les enfants. – Mike
Il suffit de charger l'ensemble, et les parents seront liés (en supposant que vous avez défini des relations plusieurs-à-un) –
Sinon, vous pouvez charger les éléments * et * la collection enfant, ce qui est moins efficace sur la BD mais vous obtenir un arbre prêt à l'emploi. –