簡體   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