2011-10-18 8 views
2

데이터베이스에서 데이터를 수집해야하는 응용 프로그램을 개발 중입니다. 나는 최대 절전 모드를 사용하고있다. 나는 응용 프로그램을 실행하면, 다음과 같은 예외가 :org.hibernate.InstantiationException : 추상 클래스 또는 인터페이스를 인스턴스화 할 수 없습니다. device.Dispositivo

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

내 최대 절전 매핑 파일은 다음과 같습니다

<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 참조는 말한다 :

추상 (옵션) : 계층 구조들 내에서 abstract 슈퍼 클래스를 표시하는 데 사용됩니다.

엔티티는 다른 구체 엔티티의 수퍼 클래스 인 경우에만 추상적 일 수 있습니다. 이것이 정규 엔티티이고, 테이블에 매핑되어 있다면, Hibernate는 그것이 추상적 인 경우 어떻게 클래스를 인스턴스화 할 것인가? 클래스의 추상적 인 메서드를 마술처럼 구현하지는 않습니다.

관련 문제