我正在开发一个需要从数据库中收集数据的应用程序。我正在使用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手册,它解释了在课堂上需要字段“抽象”。我怎么能解决这个问题?
谢谢!
答案 0 :(得分:4)
hibernate引用说:
abstract(可选):用于标记抽象超类 的层次结构。
如果实体是其他具体实体的超类,则该实体可能只是抽象的。如果它是一个映射到表的常规实体,那么如果它是抽象的,Hibernate将如何实例化你的类?它不会神奇地实现你的类的抽象方法。