【问题标题】:Classcast exception with hibernate 4休眠 4 的类转换异常
【发布时间】:2016-08-05 23:56:01
【问题描述】:

我在尝试从 DataBase 检索数据时遇到这个奇怪的异常。我知道它无法将它获取的数据转换为我的 pojo 类,但我不明白为什么并且堆栈跟踪没有给出任何指示。 Pojo类

package en.vod.beans;

import java.sql.Clob;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "table_fault")
public class casedetails {

    @Column(name = "title")
    private String title;

    @Id
    @Column(name = "number")
    private String fasoid;

    @Column(name = "case_type_lvl1")
    private String language;

    @Column(name = "case_history")
    private Clob casehistory;

    @Column(name = "fault_status")
    private String work_function;

    @Column(name = "fault_id")
    private String lid ;

    @Column(name = "customer_responsible_group")
    private  String newMail ;

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getFasoid() {
        return fasoid;
    }

    public void setFasoid(String fasoid) {
        this.fasoid = fasoid;
    }

    public String getLanguage() {
        return language;
    }

    public void setLanguage(String language) {
        this.language = language;
    }

    public Clob getCasehistory() {
        return casehistory;
    }

    public void setCasehistory(Clob casehistory) {
        this.casehistory = casehistory;
    }

    public String getWork_function() {
        return work_function;
    }

    public void setWork_function(String work_function) {
        this.work_function = work_function;
    }

    public String getLid() {
        return lid;
    }

    public void setLid(String lid) {
        this.lid = lid;
    }

    public String getNewMail() {
        return newMail;
    }

    public void setNewMail(String newMail) {
        this.newMail = newMail;
    }
}

这是执行 db 查询的代码

public static casedetails read(String companyID)  {
    casedetails detilsfaso = new casedetails();
    Session session = BaseDao.getSessionFactory();
    detilsfaso = (casedetails) session.createQuery("Select title,fasoid,language,casehistory,work_function,lid,newMail FROM casedetails where fasoid = '" + companyID + "'");

    session.close();

    return detilsfaso;

}

错误如下

[org.jboss.as.webservices.invocation.InvocationHandlerJAXWS] (http-//localhost:8080-5) JBAS015594: Method invocation failed with exception: [Ljava.lang.Object; cannot be cast to en.vod.beans.casedetails: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to en.vod.beans.casedetails

【问题讨论】:

  • 试试这样的: .... createQuery("Select c FROM casedetails c ....).getSingleResult()

标签: java hibernate web-services hql


【解决方案1】:

你有一个 ClassCastException 因为 Session 的方法 createQuery(String queryString) 返回 Query,而不是你要查询的实体。

【讨论】:

    猜你喜欢
    • 2015-08-15
    • 1970-01-01
    • 2014-06-09
    • 2014-09-04
    • 1970-01-01
    • 2011-02-14
    • 2011-09-25
    • 2012-12-27
    • 2014-08-22
    相关资源
    最近更新 更多