Hibernate - Classes Java e Mapeamento

5 respostas
kAIOSHIN

Boa tarde,

Estou a precisar de trabalhar em hibernate com uma aplicação java, no entanto não estou a conseguir que funcione.
Para começar, estou a usar um exemplo pequeno:

Uma superclasse abstracta Pessoa, com as subclasses: Fornecedor e Cliente.
Aqui estao as variaveis das classes:

public abstract class Pessoa {

    private int id;
    private String nome;
    private int nif;
    private int tel;
    private String morada;

}
public class Fornecedor extends Pessoa {

      
        private int cod_cat; 

}
public class Cliente extends Pessoa {

     private String historico;

}

O mapeamento que escrevi baseado no artigo que encontrei cá no site foi este:

<hibernate-mapping>
  <class name="gerecomsaberclientes.Pessoa" table="PESSOA"/>

  <!--Identificador da classe-->

    <id name="id">
      <generator class="increment"/>
    </id>

    <!-- Propriedades da classe -->

    <property name="nome"/>
    <property name="nif"/>
    <property name="tel"/>
    <property name="morada"/>

    <!-- Relacionamento da classe -->
</hibernate-mapping>
<hibernate-mapping>
  <joined-subclass name="gerecomsaberclientes.Fornecedor" extends="PESSOA" table="FORNECEDOR"/>

    <key column="Fornecedor_id"/>
    <property name="cod_cat"/>

  </joined-subclass>
</hibernate-mapping>
<hibernate-mapping>
  <joined-subclass name="gerecomsaberclientes.Cliente" extends="PESSOA" table="CLIENTE"/>

    <key column="Cliente_id"/>
    <property name="historico"/>

  </joined-subclass>
</hibernate-mapping>
No entanto isto não está a funcionar, dando um erro qualquer como : The content of element type "class" is incomplete, it must match ...

Alguém me pode ajudar?

5 Respostas

C

Boa tarde

Então vou te encaminhar duas apostilas que encontrei na internet sobre hibernate core e annotations, me passe seu e-mail que encaminho para você.

Falou.

C

As apostilas foram encaminhadas para seu e-mail, dê uma olhada nelas acho que vai te ajudar.

Falou.

LPJava

dar uma olhada neste post.

flw!.

kAIOSHIN

Obrigado a todos. Vou estudar o assunto :wink:

mrrbigu

Como você está começando acho bom ir usar o annotations do hibernate, que é mais simples, veja um exemplo aproximado:

@MappedSuperclass
public abstract class Pessoa {

@Id

private int id;

private String nome;

private int nif;

private int tel;

private String morada;

}

@Entity

@Table(name = fornecedor)

@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)

public class Fornecedor extends Pessoa {
private int cod_cat;

}

Criado 6 de janeiro de 2010
Ultima resposta 6 de jan. de 2010
Respostas 5
Participantes 4