gpt4 book ai didi

java - 无法使用 hibernate createSQLQuery 从数据库获取 boolean 值

转载 作者:行者123 更新时间:2023-12-01 05:32:17 25 4
gpt4 key购买 nike

使用 hibernate SQL 查询从数据库获取 boolean 数据时出现以下错误跟踪。在本地计算机中它工作正常。但是将其部署到 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);

最佳答案

我的猜测是,由于您使用 SQL 而不是 HQL,Hibernate 无法使用其映射信息及其数据库方言将数据库中的内容转换为 boolean 值。为什么不使用 HQL 来进行这样的查询呢? HQL 与 SQL 查询相同:

session.createQuery("select e.firstName, e.extraTask from Employee as e where e.id= :userId")

关于java - 无法使用 hibernate createSQLQuery 从数据库获取 boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8786024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com