筆記【一】orm.hibernate3.HibernateSystemException: Unknown entity

項目爲:status2 ,spring hibernate 

在查詢數據的時候報了orm.hibernate3.HibernateSystemException: Unknown entity這個錯誤,看了一下好像是不知道有這個實體, 於是我就懵逼了,實體都已經建好了,怎麼會沒有實體呢,這個問題困擾了我倆個小時,爲了以後再遇到這個錯誤能夠迅速的解決,在這裏做個筆記,不然時間長了都忘了經歷過這麼個異常了。下面是我的實體

/**
 *  * Created by suhui on 2017/9/20
 *  * <p/>
 *  * Copyright (c) 2017-2017
 *  * Apache License
 *  * Version 2.0, January 2004
 *  * http://www.apache.org/licenses/
 *  
 */
package com.hr.csim.entity.ctcst.archives;

import org.hibernate.annotations.Entity;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "PX_DA_UPLOAD_INFO")
public class UploadInfromation {
    private String id;
    private String dataCategory;//資料類別 ,個人資料 班級資料
    private String type;//類型 如:培訓詳情,鑑定詳情
    private String batchNo;//班級編號==屬於哪個班級
    private String fileName;//重命名之後的文件名稱
    private String uploadName;//文件原始名稱
    private String fileId;//文件的唯一標識
    private String path;//文件全路徑
    private String filePath;//文件所在路徑
    private String jgNo; //上傳文件機構編號
    private String idNumber; //個人身份證
    @Id
    @GeneratedValue(generator = "upload_info_uuid")
    @GenericGenerator(name = "upload_info_uuid", strategy = "uuid")
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getIdNumber() {
        return idNumber;
    }

    public void setIdNumber(String idNumber) {
        this.idNumber = idNumber;
    }

    public String getFileId() {
        return fileId;
    }

    public void setFileId(String fileId) {
        this.fileId = fileId;
    }

    public String getFilePath() {
        return filePath;
    }

    public void setFilePath(String filePath) {
        this.filePath = filePath;
    }

    public String getDataCategory() {
        return dataCategory;
    }

    public void setDataCategory(String dataCategory) {
        this.dataCategory = dataCategory;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getBatchNo() {
        return batchNo;
    }

    public void setBatchNo(String batchNo) {
        this.batchNo = batchNo;
    }

    public String getFileName() {
        return fileName;
    }

    public void setFileName(String fileName) {
        this.fileName = fileName;
    }

    public String getUploadName() {
        return uploadName;
    }

    public void setUploadName(String uploadName) {
        this.uploadName = uploadName;
    }
    public String getPath() {
        return path;
    }

    public void setPath(String path) {
        this.path = path;
    }

    public String getJgNo() {
        return jgNo;
    }

    public void setJgNo(String jgNo) {
        this.jgNo = jgNo;
    }
}


查詢數據的時候,報錯信息如下:

org.springframework.orm.hibernate3.HibernateSystemException: Unknown entity: com.hr.csim.entity.ctcst.archives.UploadInfromation; nested exception is org.hibernate.MappingException: Unknown entity: com.hr.csim.entity.ctcst.archives.UploadInfromation
	at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:679)
	at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
	at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:411)
	at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
	at org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:683)
	at com.hr.csim.pub.base.dao.BaseDAO.save(BaseDAO.java:128)
	at com.hr.csim.service.ctcst.archives.ArchivesService.uploadInformations(ArchivesService.java:376)
	at com.hr.csim.action.ctcst.ArchivesAction.uploadInformation(ArchivesAction.java:117)
	at com.hr.csim.action.ctcst.ArchivesAction$$FastClassByCGLIB$$122716d7.invoke(<generated>)
	at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191)
	at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:688)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
	at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80)

經過仔細的排查,終於找到了原因,由於我的開發工具設置的自動導包,工具在導包的時候導錯了包,@Entity這個註解有倆個包分別是:

import org.hibernate.annotations.Entity;
import javax.persistence.Entity;

由於工具自動導了annotations這個包,所以才找不到實體,正確的包應該是persistence這個包。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章