Olá!
Estou com problemas para utilizar os annotations do hibernate. O projeto estava todo funcionando com os mapeamento hbm.xml, daí estou querendo colocar com annotations.
O problema acho que está no meu mapeamento de herança:
-Pessoas(classe abstrata)
-----Funcionarios(classe abstrata)
---------Gerentes
---------Peoes
-----Clientes
Segue o codigo de pessoas.hbm.xml. Fiz apenas um DAO para todas essas classes: PessoasDAO. Com este mapeamento está funcionando.
[code]
<joined-subclass name="classes.Funcionarios" extends="classes.Pessoas" table="funcionarios">
<key column="id"/>
<property name="matricula" type="integer"/>
<property name="horas" type="integer"/>
<joined-subclass name="classes.Peoes" extends="classes.Funcionarios" table="peoes">
<key column="id"/>
<property name="valorHora" type="double"/>
</joined-subclass>
<joined-subclass name="classes.Gerentes" extends="classes.Funcionarios" table="gerentes">
<key column="id"/>
<property name="valorContrato" type="double"/>
</joined-subclass>
</joined-subclass>
<joined-subclass name="classes.Clientes" extends="classes.Pessoas" table="clientes">
<key column="id"/>
<property name="codCliente" type="integer"/>
</joined-subclass>
</class>
[/code]
O que eu tentei fazer pra mapear com annotations foi o seguinte:
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@Table(name="pessoas")
public abstract class Pessoas{
@Entity
@Table(name="clientes")
public class Clientes extends Pessoas implements Serializable{
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@Table(name="funcionarios")
public abstract class Funcionarios extends Pessoas{
@Entity
@Table(name="peoes")
public class Peoes extends Funcionarios implements Serializable{
@Entity
@Table(name="gerentes")
public class Gerentes extends Funcionarios implements Serializable{
Para utilizar Annotations, configurei da seguinte forma o DAO:
public PessoasDAO() throws Exception{
factory = new AnnotationConfiguration()
.addPackage("classes")
.addAnnotatedClass(Pessoas.class)
.addAnnotatedClass(Clientes.class)
.addAnnotatedClass(Funcionarios.class)
.addAnnotatedClass(Gerentes.class)
.addAnnotatedClass(Peoes.class)
.buildSessionFactory();
}
O erro que ocorre quando vou executar é:
Exception in thread "main" java.lang.IllegalAccessError: tried to access method org.hibernate.cfg.Mappings.<init>(Ljava/util/Map;)V from class org.hibernate.cfg.ExtendedMappings
Bem, se alguém puder ajudar, acho que é SÓ isso