org.hibernate.exception.SQLGrammarException:在休眠迁移

时间:2017-03-28 08:34:18

标签: java sql-server hibernate

我正在使用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之后它抛出了前一个异常。 我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

这通常是因为如果colu无法绑定意味着它有问题 - 要么你有一个简单的拼写错误,要么表和列之间的混淆。它也可能是由于在表格或字段名称中使用保留字而不是用[]。

包围它们