Java Hibernate版本3.2.6;原因:org.hibernate.QueryException:无法解析属性:
我的代码Java Hibernate版本3.2.6;原因:org.hibernate.QueryException:无法解析属性:,java,sql,hibernate,Java,Sql,Hibernate,我的代码 @SuppressWarnings("unchecked") public List<RemboursementElement> validerRemboursement(String numDossier) { //List<RemboursementElement> l= getHibernateTemplate().find("from entite.RemboursementElement r where r.NUMERO_DOSSIER_RE
@SuppressWarnings("unchecked")
public List<RemboursementElement> validerRemboursement(String numDossier) {
//List<RemboursementElement> l= getHibernateTemplate().find("from entite.RemboursementElement r where r.NUMERO_DOSSIER_REM='"+numDossier+"'" );
//return l;
List<RemboursementElement> results = Lists.newArrayList();
Session session=null;
try { StringBuilder hql = new StringBuilder();
hql.append("select ");
hql.append(" tableRemboursement.NUMERO_DOSSIER_REM, ");
hql.append("tableRemboursement.MONTANT_REMBOURSE, ");
hql.append("tableRemboursement.ETAT_REMBOURSEMENT, ") ;
hql.append("tableRemboursement.MOTIF_REMBOURSEMENT " );
hql.append("from ");
hql.append(RemboursementElement.class.getCanonicalName());
hql.append(" as tableRemboursement ");
hql.append(" where 1=1 and tableRemboursement.NUMERO_DOSSIER_REM =");
hql.append("'"+numDossier+"'");
hql.append("");
// Query query = getSession().createQuery(hql.toString());
session=this.getSession();
Query query = session.createQuery(hql.toString());
query.setParameter("numDossier", numDossier);
query.executeUpdate();
List<RemboursementElement> l= query.list();
if(l.size()>0 && l.isEmpty()==false && l!=null) {
if(l.iterator().hasNext()==true) {
results.addAll(l);
}
}else {
System.out.println("liste vide !");
}
return results;
} catch (QueryException e) {
throw new HibernateQueryException(e);
}
}
@SuppressWarnings(“未选中”)
公共列表validerRemboursement(字符串numDossier){
//List l=getHibernateTemplate().find(“从entite.RemboursementElement r,其中r.NUMERO_docsier_REM=”“+numDossier+””);
//返回l;
列表结果=Lists.newArrayList();
会话=空;
尝试{StringBuilder hql=new StringBuilder();
附加(“选择”);
hql.append(“tableRemboursement.NUMERO_档案”);
hql.append(“tableRemboursement.MONTANT_REMBOURSE,”);
hql.append(“tableRemboursement.ETAT_REMBOURSEMENT,”);
hql.append(“tableRemboursement.MOTIF_REMBOURSEMENT”);
hql.append(“from”);
append(RemboursementElement.class.getCanonicalName());
hql.追加(“作为附表”);
hql.append(“其中1=1,tableRemboursement.NUMERO_docsier_REM=”);
hql.append(“'”+numDossier+“'”);
hql.追加(“”);
//Query Query=getSession().createQuery(hql.toString());
session=this.getSession();
Query=session.createQuery(hql.toString());
setParameter(“numDossier”,numDossier);
query.executeUpdate();
List l=query.List();
如果(l.size()>0&&l.isEmpty()==false&&l!=null){
if(l.iterator().hasNext()==true){
结果:addAll(l);
}
}否则{
System.out.println(“liste vide!”);
}
返回结果;
}捕获(查询异常e){
抛出新的HibernateQueryException(e);
}
}
您形成的查询是两种东西的混合。
您正在查询格式化中设置参数,稍后还将使用setParameter函数,该函数将引发异常
在代码中,将hq.append(““+numDossier+””)
替换为hq.append(“:numDossier”)