2011-10-18 4 views
2

私はデータベースからデータを収集する必要があるアプリケーションを開発しています。私は休止状態を使用しています。私は、アプリケーションを実行すると、私は次の例外を取得: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のマニュアルを読んで、クラスが "abstract"のフィールドが必要であると説明しています。どうすれば問題を解決できますか?

ありがとうございます!

答えて

4

Hibernateリファレンスは言う:

抽象(オプション): 階層内の抽象スーパークラスにマークするために使用されます。

エンティティは、他の具象エンティティのスーパークラスである場合にのみ抽象型になることがあります。通常のエンティティで、テーブルにマップされている場合、抽象クラスの場合、Hibernateはどのようにクラスをインスタンス化しますか?クラスの抽象メソッドを魔法のように実装することはありません。

関連する問題