Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java org.hibernate.exception.sqlgrammareexception:在hibernate迁移之后,不能使用hibernate和SQLServer绑定多部分标识符_Java_Sql Server_Hibernate - Fatal编程技术网

Java org.hibernate.exception.sqlgrammareexception:在hibernate迁移之后,不能使用hibernate和SQLServer绑定多部分标识符

Java org.hibernate.exception.sqlgrammareexception:在hibernate迁移之后,不能使用hibernate和SQLServer绑定多部分标识符,java,sql-server,hibernate,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,

我正在使用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_)中失败;并引发以下异常:

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
该查询在Hibernate3中正常工作,但在迁移到Hibernate4之后,它抛出了前面的异常。
我遗漏了什么吗?

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

但在我使用hibernate 3时,该查询工作正常。升级到hibernate 4后,我遇到了此异常