java.lang.ClassCastException : [Ljava. lang.Object;与 com.spring.model.Instruction 不兼容

标签 java hibernate

public List<Instruction> listPAyment() {
    Session session = this.sessionFactory.getCurrentSession();
    List<Instruction> personsList = (List<Instruction>)session.createSQLQuery(
        "SELECT INSTRUCTIONKEY, BASECURRENCY,STATUSPROC, WHENMODIFIED FROM MyDB.INSTRUCTION"
    ).list();
    EXCEPTION HERE--->    for(Instruction p : personsList){
        System.out.println( "Payment::"+ p.toString()); 
    }
    return personsList;
}

我得到java.lang.ClassCastException: [Ljava.lang.Object; incompatible with com.spring.model.Instruction上面提到的异常,我无法找出下面代码中的转换有什么问题。 我已添加toString()在模型类中正确 Instruction

请帮忙

[2016/09/05 15:05:01:991 GMT+02:00] 00000040 ServletWrappe E com.ibm.ws.webcontainer.servlet.ServletWrapper 服务 SRVE0068E:应用程序 [SpringMVCH 中 servlet [/WEB-INF/views/instruction.jsp] 的服务方法之一引发异常ibernate_war]。创建异常:[java.lang.NumberFormatException:对于输入字符串:“instructionKey” 在 java.lang.NumberFormatException.forInputString(NumberFormatException.java:59) 在 java.lang.Integer.parseInt(Integer.java:460) 在 java.lang.Integer.parseInt(Integer.java:510) 在javax.el.ArrayELResolver.coerce(ArrayELResolver.java:166) 在 javax.el.ArrayELResolver.getValue(ArrayELResolver.java:46) 在 javax.el.CompositeELResolver.getValue(CompositeELResolver.java:55) 在 org.apache.el.parser.AstValue.getValue(AstValue.java:174) 在 org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:283) 在org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:778) 在 com.ibm._jsp._instruction._jspx_meth_c_forEach_0(_instruction.java:131) 在 com.ibm._jsp._instruction._jspx_meth_c_if_0(_instruction.java:179) 在 com.ibm._jsp._instruction._jspService(_instruction.java:95) 在 com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:99) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:668) 在 com.ibm.ws.cache.servlet.ServletWrapper.serviceProxied(ServletWrapper.java:307)

Jsp 迭代对象:

      <c:forEach items="${listPersons}" var="instruction">
            <tr>
                <td>${instruction.instructionKey}</td>
                <td>${instruction.statusProc}</td>
                <td>${instruction.baseCurrency}</td> 
                <td>${instruction.whenModified}</td>
            </tr>
        </c:forEach>

其中 model.addAttribute("指令", newInstruction()); model.addAttribute("listPersons", this.personService.listPersons());

在 Controller 中定义。

最佳答案

您可以从数据库中提取一个名为 :whatever: 的类,并为该类提供将从数据库中提取的变量,并为其提供一个可以调用的 toString 方法?也许?

关于java.lang.ClassCastException : [Ljava. lang.Object;与 com.spring.model.Instruction 不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39308345/

相关文章:

java - 在将 Quarkus Hibernate Reactive 与 quarkus-reactive-client 一起使用时如何使用一些阻止方法?

java - 在运行时为 JTable 创建行标题

java - Eclipse 找不到 javax.servlet.http.HttpServlet

java - Log4J 2 配置监控和按位比较

java - 在 Android 应用程序中命名包的正确技术是什么?

java - Hibernate findById 的问题

java - 如何在 Hibernate Java obj 中添加 @XmlTransient

java - 组织数据库(如何存储列表)

java - Hibernate加载cfg中未映射的实体

java - 如何有效地搜索多个数组中的项目?