Dúvida em mapeamento Hibernate (Iniciante)

2 respostas
ul1sses

Suponhamos as classes:

Classe1 (CLASSE1)
Long idClasse1 (ID_CLASSE1)

Classe2 (CLASSE2)
Long idClasse2 (ID_CLASSE2)
Long idClasse1 (ID_CLASSE1)
List classe3

Classe3 (CLASSE3)
Long idClasse3 (ID_CLASSE3)
Long idClasse2 (ID_CLASSE2)

E o relacionamento CLASSE1 1:N CLASSE2 1:N CLASSE3

Algoritmo principal:
Cria objeto Classe1
Cria colecao de objetos Classe2
Cria colecao de objetos Classe3
Salva objeto Classe1

Como devo fazer o mapeamento HIBERNATE (em xml) para que ao salvar o objeto Classe1, automaticamente, salvar os objetos relacionados e suas respectivas FK?

Classes

class Classe1() {
 Long idClasse1;
//...
}

class Classe2() {
 Long idClasse2;
 Long idClasse1;
 Collection<Classe3> classe3 = new ArrayList<Classe3>();
//...
}

class Classe3() {
 Long idClasse3;
 Long idClasse2;
//...
}

O que eu quero fazer basicamente…

class principal() {
 public static void main() {
  Classe1 classe1 = new Classe1();
  // Preenche os dados

  Collection<Classe2> clClasse2 = new ArrayList<Classe2>();

  while(leLinhaDoArquivo) {
   clClasse2.add(criaObjetoClasse2(linha));
  }

}

public Classe2 criaObjetoClasse2(String linha) {
 Classe2 classe2 = new Classe2();
 // Preenche os valores
 
 Collection<Classe3> clClasse3 = new ArrayList<Classe3>();
 clClasse3 = criaObjetosClasse3(linha);
 
 return classe2;
}

public Collection<Classe3> criaObjetosClasse3(String linha) {

 Collection<Classe3> clClasse3 = new ArrayList<Classe3>();
 
 if (condicao) {
  Classe3 classe3 = new Classe3();
  // Preenche os valores
 clClasse3.add(classe3);
 }

 if (condicao2) {
  Classe3 classe3 = new Classe3();
  // Preenche os valores
 clClasse3.add(classe3);
 }
 
 // ...

 return clClasse3;
}

2 Respostas

mauricionarcizo

primeiro coloque seu código em tag code para podermos visualizar melhor e te ajudar.

fabiozoroastro

Tenho certeza que você descobrirá aqui: http://docs.jboss.org/hibernate/core/3.3/reference/en/html/xml.html

Até mais.

Criado 14 de julho de 2011
Ultima resposta 14 de jul. de 2011
Respostas 2
Participantes 3