Associações do Hibernate pra que?

11 respostas
M

Oi, pessoal. Minha dúvida é o que vai facilitar fazer associações entre classes?Seja one-to-one, many-to-many, many-to-one?Quais as vantagens, o que vem a contribuir?

11 Respostas

Mauricio_Linhares

Estude orientação a objetos que você vai entender.

Ou então começe a fazer join de tabelas manualmente, é maravilhoso :lol:

_fs

Porque uma Pessoa tem muitos Documentos? Porque um Curso tem muitos Alunos? Porque uma Nota tem vários Itens?

pcalcado

Trabalhando com Hibernate você se concentra em objetos, não em tabelas.

Toda a parte suja, feia e malvada do SQL deve ficar a cargo do framework, incluindo joins (mas se você precisar mesmo utilziar algum recurso SQL, ele te dá possibilidade).

Nunca faça joins manualmente, utilize os mapeamentos para dizer ao framework como suas classes se relacionam.

Eu já vi muita gente fazendo join em HSQL :frowning:

Mauricio_Linhares

pcalcado:

Eu já vi muita gente fazendo join em HSQL :(

Mas o join em HQL é necessário Phillip, pra dizer que você quer carregar as dependências com a classe (quando você tá usando lazy-load).

passos

Pra isso tem criteria!

pcalcado

Ok, não era exatamente “join”, mas não sei como chamar isso:

class A{
  private int codigo;
}

class B{
 private int codigoDeA;

  public void setCodigoDeA(int codigo){
    this.codigoDeA=codigo;
  }
}

Mapeamento Relacional-Objeto? :smiley:

Mauricio_Linhares

Só uso criteria quando não dá pra usar uma named query em HQL :mrgreen:

<blockquote><div class="quote-author">pcalcado:</div> class A{

private int codigo;

}

class B{
private int codigoDeA;

public void setCodigoDeA(int codigo){

this.codigoDeA=codigo;

}

}

Urgh! :oops:

O pior é que eu vi um bixo desses passeando por aqui dia desses…

Jair_Rillo_Junior

pcalcado:
Ok, não era exatamente “join”, mas não sei como chamar isso:

class A{
  private int codigo;
}

class B{
 private int codigoDeA;

  public void setCodigoDeA(int codigo){
    this.codigoDeA=codigo;
  }
}

Mapeamento Relacional-Objeto? :D

Eu vi isso na minha sala da faculdade, quando estavamos aprendendo UML e deveria criar alguns diagramas de classes.
Foi dificil para o professor explicar para as pessoas que em OO os relacionamentos não funcionam assim

Rodrigo_Carvalho_Aul

Fazer join também é útil na hora de fazer uma busca dentro de uma collection qualquer do objeto.

select pessoa from pacote.Pessoa pessoa inner join pessoa.Documentos documento where documento.Numero = '12345'

[]'s

Rodrigo C. A.

Mauricio_Linhares

ManchesteR:
Eu vi isso na minha sala da faculdade, quando estavamos aprendendo UML e deveria criar alguns diagramas de classes.
Foi dificil para o professor explicar para as pessoas que em OO os relacionamentos não funcionam assim

É nada, difícil foi pra eu entender que no mundo relacional as coisas se “juntam” com chaves.

pcalcado

Maurício Linhares:

É nada, difícil foi pra eu entender que no mundo relacional as coisas se “juntam” com chaves.

Admirável mundo novo…

Criado 24 de agosto de 2005
Ultima resposta 24 de ago. de 2005
Respostas 11
Participantes 7