Невозможно получить логические значения из базы данных с помощью hibernate createSQLQuery - PullRequest
1 голос
/ 09 января 2012

При извлечении логических данных из базы данных с помощью спящего SQL-запроса выдается следующая трассировка ошибки. На локальном компьютере все работает нормально. Но при развертывании в GAE возникают ошибки.

javax.faces.el.EvaluationException: org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of com.fetchinglife.domain.data.dto.EmployeeDTO.extraTask

В моем EmployeeDTO.java

private boolean extraTask;

//getters and setters

public boolean getExtraTask() 
    {
        return extraTask;
    }
public void setExtraTask(boolean extraTask) 
    {
        this.extraTask = extraTask;
    }

hibernate createSQLQuery похож на

Query query  = session.createSQLQuery("select e.firstName, e.extraTask from Employee as e where e.id= :userId").setResultTransformer(new AliasToBeanResultTransformer(EmployeeDTO.class));
query.setParameter("userId", userId);

1 Ответ

0 голосов
/ 09 января 2012

Я предполагаю, что, поскольку вы используете SQL, а не HQL, Hibernate не может использовать свою информацию отображения и диалект базы данных для преобразования того, что у вас есть в базе данных, в логическое значение. Почему вы не используете HQL для такого запроса? HQL идентичен запросу SQL:

session.createQuery("select e.firstName, e.extraTask from Employee as e where e.id= :userId")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...