[英]Hibernate sql query error
以下是查询:
Query q = getSession().createQuery("FROM secroles
WHERE secroles.SR_ORG = :srOrg ,
secroles.SR_PROFILE= :srUser,
ISDELETED=:isDeleted");
错误:
org.hibernate.hql.ast.QuerySyntaxException: unexpected token: , near line 1, column 37 [FROM secroles WHERE SR_ORG = :srOrg , SR_PROFILE= :srUser , ISDELETED = :ISDELETED]
完整的 function:
public String getSecroleByOrgNID(Organization srOrg, Profile srUser){try {
System.out.println("bug is here0");
begin();
Query q = getSession().createQuery("FROM secroles WHERE secroles.SR_ORG = :srOrg , secroles.SR_PROFILE= :srUser , ISDELETED=:isDeleted");
q.setParameter("srOrg", srOrg);
q.setParameter("srOrg", srUser);
q.setBoolean("isDeleted", false);
Secroles sr = (Secroles) q.uniqueResult();
Roletable rt = sr.getSrRole();
commit();
return rt.getRoleName();
} catch( HibernateException e ) {
rollback();
e.printStackTrace();
System.out.println("Could not assign role\n Message: "+e.getMessage());
}
return null;
}
}
你放,
而不是AND
,我想。
此外,您应该使用 class 属性名称而不是列名称。 所以可能是secroles.srOrg
而不是secroles.SR_ORG
对多个子句使用 AND 而不是 ","。 请参阅有关如何使用WHERE
子句的文档: http://docs.jboss.org/hibernate/core/3.3/reference/en/html/queryhql.ZFC35FDC70D5FC69D2698Z83A82E2
FROM secroles
WHERE secroles.SR_ORG = :srOrg AND
secroles.SR_PROFILE= :srUser AND
ISDELETED=:isDeleted
您还可以根据上面的代码使用不同的变量将相同的参数绑定两次。 我很确定这不会达到你的预期。
q.setParameter("srOrg", srOrg);
q.setParameter("srOrg", srUser);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.