Ошибка SQL-запроса Hibernate - PullRequest
0 голосов
/ 31 мая 2011

следующий запрос:

    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]

полная функция:

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;

}

}

Ответы [ 3 ]

2 голосов
/ 31 мая 2011

Используйте AND вместо "," для нескольких предложений. Обратитесь к документации о том, как использовать WHERE предложение: http://docs.jboss.org/hibernate/core/3.3/reference/en/html/queryhql.html

FROM secroles 
WHERE secroles.SR_ORG = :srOrg AND
      secroles.SR_PROFILE= :srUser AND
      ISDELETED=:isDeleted
2 голосов
/ 31 мая 2011

Вы положили , вместо AND, я полагаю.

Также вы должны использовать имена свойств класса, а не имена столбцов. Так что, вероятно, secroles.srOrg вместо secroles.SR_ORG

0 голосов
/ 01 июня 2011

Также вы связываете один и тот же параметр дважды, используя разные переменные в соответствии с кодом выше. Я уверен, что это не будет делать то, что вы ожидаете.

    q.setParameter("srOrg", srOrg);
    q.setParameter("srOrg", srUser);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...