2011-10-18 78 views
2

我正在開發一個需要從數據庫收集數據的應用程序。我正在使用Hibernate。當我運行應用程序,我得到以下異常:org.hibernate.InstantiationException:無法實例化抽象類或接口:device.Dispositivo

org.hibernate.InstantiationException: Cannot instantiate abstract class or interface: device.Dispositivo 

我的Hibernate映射文件是:

<hibernate-mapping> 
    <class name="device.Dispositivo" table="dispositivos" abstract="true"> 
     <id column="iddispositivo" name="iIdBD" type="java.lang.Integer"/> 
     <property column="nombre" generated="never" lazy="false" name="sNombreDispositivo" type="java.lang.String"/> 
     <property column="descripcion" generated="never" lazy="false" name="sDescripcion" type="java.lang.String"/> 
     <property column="descriptortipodispositivo" generated="never" lazy="false" name="sTipo" type="java.lang.String"/> 
     <property column="codigo" generated="never" lazy="false" name="sID" type="java.lang.String"/> 
    </class> 
</hibernate-mapping> 

類「Dispositivo」是一個抽象類。我讀了Hibernate手冊,它解釋了當類是什麼時需要字段「抽象」。我怎麼能解決這個問題?

謝謝!

回答

4

Hibernate參考表示:

抽象(可選):用於在 層次標記抽象超類。

如果一個實體是其他具體實體的超類,則它只能是抽象的。如果它是一個映射到表的常規實體,那麼Hibernate如果抽象的話會如何實例化你的類?它不會神奇地實現你的課堂的抽象方法。