使用hibernate 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);
答案 0 :(得分:0)
我的猜测是,由于您使用SQL而不是HQL,Hibernate无法使用其映射信息及其数据库方言将您在数据库中的内容转换为布尔值。为什么不使用HQL进行此类查询? HQL与SQL查询相同:
session.createQuery("select e.firstName, e.extraTask from Employee as e where e.id= :userId")