繁体   English   中英

Hibernate sql 查询错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM