我正在使用hibernate spring构建一个项目,这是我的HQL查询
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
我正在尝试执行以下代码:
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;
}
代码在scrollableResults = query.scroll(ScrollMode.FORWARD_ONLY)中失败;并引发以下异常:
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
该查询过去在hibernate 3中运行得很好,但是在迁移到hibernate 4之后它抛出了前一个异常。 我错过了什么吗?
答案 0 :(得分:0)
这通常是因为如果colu无法绑定意味着它有问题 - 要么你有一个简单的拼写错误,要么表和列之间的混淆。它也可能是由于在表格或字段名称中使用保留字而不是用[]。
包围它们