java.lang.ClassCastException:java.lang.String在Hibernate尝试将列值转换为列表时无法转换为[Ljava.lang.Object

java.lang.ClassCastException:java.lang.String在Hibernate尝试将列值转换为列表时无法转换为[Ljava.lang.Object,java,spring,hibernate,Java,Spring,Hibernate,我正在用Hibernate开发一个spring web应用程序。在将列值从表中获取到列表时,我遇到了一个错误。但是这个错误不断出现。请帮助我放置。提前感谢 @存储库 @交易的 公共类GetProjectsDaoImpl实现GetProjectsDao{ @自动连线 私有休眠eutilimpl休眠eutilimpl; 公共列表项目(){ String sql=“从项目中选择项目标识”; List projectObjects=hibernateutilimpl.fetchAll(sql); Lis

我正在用Hibernate开发一个spring web应用程序。在将列值从表中获取到列表时,我遇到了一个错误。但是这个错误不断出现。请帮助我放置。提前感谢

@存储库
@交易的
公共类GetProjectsDaoImpl实现GetProjectsDao{
@自动连线
私有休眠eutilimpl休眠eutilimpl;
公共列表项目(){
String sql=“从项目中选择项目标识”;
List projectObjects=hibernateutilimpl.fetchAll(sql);
List projectsList=新建ArrayList();
对于(对象[]项目对象:项目对象){
项目=新项目();
字符串id=(字符串)项目对象[0];
project.setProjectId(id);
projectsList.add(项目);
}
返回项目列表;
}
}
@存储库
公共类HibernateUtilImpl实现HibernateUtil{
@自动连线
私人会话工厂会话工厂;
公共可序列化创建(最终T实体){
返回sessionFactory.getCurrentSession().save(实体);
}
公共T更新(最终T实体){
sessionFactory.getCurrentSession().update(实体);
返回实体;
}
公共作废删除(最终T实体){
sessionFactory.getCurrentSession().delete(实体);
}
@抑制警告(“原始类型”)
公共列表fetchAll(字符串查询){
返回sessionFactory.getCurrentSession().createNativeQuery(query).list();
}
}

我有以下建议。第一个更改:

List<Object[]> projectObjects = hibernateutilimpl.fetchAll(sql); 


需要进行上述更改,因为您只选择了一列。
Object[]
仅在选择多个列时使用。

您是否在方法getProjects()中将Object[]更改为String?
hibernateutilimpl.fetchAll(sql)中尝试了可能的重复项
返回一个
列表
在您的情况下,id值可能是一个
整数
而不是
对象
也可能是库正在根据列类型信息设置类型谢谢。这适用于单个列。但是如果我想选择多个列呢?嗨,对于多个列,原版是al您编写的代码应该可以工作,假设您有project_id和project_name,将sql更改为获取2列,以获取第二列do String project_name=(String)projectObject[1]的值;除上述内容外,如果您选择的是所有列,那么您可以列出项目对象,如果项目具有与项目表中的列相对应的所有字段…@Michael0x2a-感谢您编辑我的答案,您能告诉我在哪里可以找到关于如何格式化我们编写的内容/代码的说明吗。@deepakl,您可以在其中访问的面板dit或write“答案”具有基本格式工具栏;使用该工具栏可使您的文章更具可读性。
List<Object> projectObjects = hibernateutilimpl.fetchAll(sql);
for(Object[] projectObject: projectObjects) {
    String id = (String) projectObject[0];
for(Object projectObject: projectObjects) {
    String id = (String) projectObject;