org.hibernate.InstantiationException:无法实例化抽象类或接口:device.Dispositivo

时间:2011-10-18 10:06:21

标签: java database hibernate

我正在开发一个需要从数据库中收集数据的应用程序。我正在使用Hibernate。当我运行应用程序时,我得到以下异常:

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手册,它解释了在课堂上需要字段“抽象”。我怎么能解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:4)

hibernate引用说:

  

abstract(可选):用于标记抽象超类    的层次结构。

如果实体是其他具体实体的超类,则该实体可能只是抽象的。如果它是一个映射到表的常规实体,那么如果它是抽象的,Hibernate将如何实例化你的类?它不会神奇地实现你的类的抽象方法。