Hibernate Critères: Jointure Externe Gauche avec des restrictions sur les deux tableaux
Je suis en train de faire une JOINTURE EXTERNE GAUCHE, mais je suis seulement en mesure d'appliquer des Restrictions sur la première table. Est-il un moyen de ti appliquer sur la seconde table?
Voici mon code:
Criteria criteria = this.crudService
.initializeCriteria(Applicant.class).setFetchMode("products",
FetchMode.JOIN);.
Cela fonctionne (le demandeur dispose d'un applicantName la propriété):
criteria.add(Restrictions.eq("applicantName", "Markos")
Aucune de ces œuvres (produit a une propriété productName)
criteria.add(Restrictions.eq("productName", "product1")
critères.ajouter(Restrictions.eq("produits.productName", "produit1") //produits: le nom de la propriété
les critères.ajouter(Restrictions.eq("Produit.productName", "produit1") //Produit: nom de la table DB
Et c'est l'exception, je reçois à dire (si j'ai bien compris) que le nom de la propriété n'existe pas de Déposant:
EJB Exception: ; nested exception is: org.hibernate.QueryException: could not resolve property: products.inventedName of: org.myCompany.applicant.entity.Applicant; nested exception is: org.hibernate.QueryException: could not resolve property: products.inventedName of: org.myCompany.applicant.entity.Applicant
J'ai essayé d'utiliser un alias, mais cela a généré une JOINTURE INTERNE, au lieu de la JOINTURE EXTERNE GAUCHE je veux.
Comment puis-je appliquer des restrictions sur les deux tableaux?
Mise à JOUR:
Problème est probablement le même que ceci:
https://forum.hibernate.org/viewtopic.php?p=2393694
OriginalL'auteur Markos Fragkakis | 2010-02-05
Vous devez vous connecter pour publier un commentaire.
Vous pouvez spécifier la jointure externe gauche dans la createalias...
Être conscient que vous faites une jointure externe gauche, avec une restriction sur la colonne...essentiellement en faisant une jointure interne. Si vous aussi vous voulez les candidats sans produits, alors vous aurez à vérifier la valeur null.
OriginalL'auteur dotjoe
Mise à jour:
OriginalL'auteur alden8
J'ai résolu mon problème de création d'un nouveau critère et que je pouvais utiliser LEFT_OUTER_JOIN dans les deux cas.
OriginalL'auteur user2525481