2017-03-28 1 views
0

Je construis un projet à l'aide du printemps de mise en veille prolongée voici ma requête HQLorg.hibernate.exception.SQLGrammarException: L'identifiant multi partie ne peut pas être lié à l'aide Hibernate et SQLServer Après une migration de mise en veille prolongée

select distinct new ma.mamda.per.model.Souscription(souscription.id, souscription.numeroPolice, souscription.dateEffet, 
souscription.cotisationPeriodique.epargne.montant,souscription.produit.familleproduit.code, souscription.garntieOptionnelle, 
souscription.dureeContrat, souscription.etat, 
souscription.souscripteur.nom, souscription.souscripteur.prenom,souscription.partenaire.libelle,souscription.partenaire.id, 
souscription.produit.libelle,assure.numeroCompte, assure.nom, assure.prenom) 
from ma.mamda.per.model.Souscription as souscription 
left outer join souscription.souscripteur as souscripteur 
left outer join souscription.cotisationPeriodique as cotisationPeriodique 
left outer join souscription.cotisationPeriodique.epargne as epargne 
left outer join souscription.partenaire as partenaire 
left outer join souscription.produit as produit 
left outer join souscription.produit.familleproduit as familleproduit 
left outer join souscription.assure as assure 
where souscription.etat != 11 and souscription.etat != 13 and produit.id = 1 

Et je essaie d'exécuter le code suivant:

Query q = getCurrentSession.createQuery(requete.toString()); 
try { 
    SscrollableResults scrollableResults = query.scroll(ScrollMode.FORWARD_ONLY); 
    int totalElements = scalculateTotalElementsByList(query); 
} catch (HibernateException e) { 
    if (log.isErrorEnabled()) 
     log.error("Failed to create ScrollPage by getScrollPageInstanceWithTotalByQuery: " + e.getMessage()); 
    throw e; 
} 

le code échoue dans ScrollableResults = Query.scroll (ScrollMode.FORWARD_ONLY); et jette l'exception suivante:

org.hibernate.exception.SQLGrammarException: Failed to create ScrollPage by getScrollPageInstanceWithTotalByQuery: The multi part identifier "subscript0_1_.partenaire_id" can not be bound 
Root Cause : com.microsoft.sqlserver.jdbc.SQLServerException: The multi part identifier "subscript0_1_.partenaire_id" can not be bound 

La requête utilisée pour fonctionner parfaitement en veille prolongée 3 mais après la migration vers mise en veille prolongée 4, il jette l'exception précédente. Ai-je raté quelque chose?

Répondre

0

Cela se produit généralement parce que si le colu ne peut pas être lié, cela signifie qu'il y a quelque chose qui ne va pas - soit vous avez une simple faute de frappe, soit une confusion entre la table et la colonne. Il peut également être provoqué en utilisant des mots réservés dans vos noms de table ou de champ sans les entourer de [].

+0

Mais la requête fonctionnait très bien quand j'utilisais Hibernate 3.Juste après la mise à niveau d'Hibernate 4 que j'ai fait face à cette exception – Chaaaaz