Hibernate Annotation

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 :slight_smile:

Esses aí eu omiti no post, mas coloquei todas as “chaves” primárias com @Id e @Column e os outros atributos com @Column (todos os @Column estão com o name identificado igual ao BD).

vlw

Boa Tarde!

Cara aqui tem um breve tutorial…

Espero que possa te ajudar ele tem a classe pai e classe filha anotadas…
mas tem mais duas estrategias que poderia utilizar eu acho essa a melhor…

Valeu espero que ajude!

cade os atributos e os get/set nos seus beans???

exemplos
@Id
@Column
e etc
???