Quelques posts parlent d'un bug survenant avec oracle 10g et NHibernate lors d'une jointure multiple.
- http://forums.oracle.com/forums/thread.jspa?threadID=412019&tstart=0
- https://forum.hibernate.org/viewtopic.php?f=1&t=963196&start=0
left outer join "City" city2_ on address1_.City_id=city2_.Id, "Country" country6_ left outer join Provider_Specialities specialiti3_ on provider0_.Id=specialiti3_.Provider_iddonc l'utilisation de provider0_.Id dans le second join est invalidé par le "," du premier join. Le code incriminé se situe dans le fichier Oracle10gDialect.cs dans NHibernate.Dialect. En voici son code :
public class Oracle10gDialect : Oracle9iDialect { public override JoinFragment CreateOuterJoinFragment() { return new ANSIJoinFragment(); } } Le workaround le plus simple à mettre en place est de changer le dialect de votre SessionFactory de Oracle10 vers Oracle9. Original article available at http://www.alphablog.org
Aucun commentaire:
Enregistrer un commentaire