Hibernate

Olá pessoal…
Estou fazendo o mapeamento no hibernate…
Gostaria de saber se eu devo incluir <set …/set>. Disseram me que precisaria quando eu fizesse uma list.
Analisando o caso: Vou fazer uma pesquisa que retorno todos os campos quando o id for igual a… No caso ele voltaria com as informações de todos os campos referente ao id correto. Eu preciso usar o set. Essa é a verdadeira função dele, caso nao seja, explique me por favor???

opa beleza?

bom no hibernate utilizo no mapeamento a tag <bag…/>
para realizar o mapeamento de listas de objetos

e o <set…/> é usado no caso por exemplo, imagine que vc tem
na sua base de dados uma entidade pessoa e outra mails

no caso sua entidade( classe ), vc tem ela da seguinte forma
possui uma coleção de e-mail, onde este é uma lista de Strings
onde da tabela mail vc apenas irá recuperar o campo do mail
para este caso tu utiliza a tag do mapeamento <set…/>

:wink:

[]´s

A função do set e outros mapamentos do tipo, é mapear coleção, basicamente são relacionamentos entre as tabelas, ex.:

[code]public class Aluno{
private int id;
private String nome;
//get, set
}

public class Turma{
private int id;
private Collection alunos;
//get, set
}[/code]

Nesse caso, ao mapear a classe Turma, você usaria um mapeamento desse tipo para representar o relacionamento entre Turma e Aluno, criando dentro de Turma uma coleção de Alunos…

Se é que eu entendi o que você vai fazer (fazer uma consulta que retorna uma serie de registros do banco), não é o caso de usar isso!

Sempre que eu tenho uma chave estrangeira eu sou obrigada a ter uma colection???

Acho que vai da sua utilização, eu não crio para toda chave extrangeira, as vezes vc tem cidade e uf por exemplo, mas em nenhum momento quer saber quais são as cidades da sua uf (o que seria uma coleção), apenas qual é a uf da sua cidade, então você só mapeia a uf na cidade… seila é assim pelo menos que eu uso… pode não ser o certo, mas “funca” hehehe

Por exemplo eu quero fazer uma consulta numa classe em que volte uma coleção de números de conta com a agência de tal número. Eu tenho que usar o set ???

Não, você pode ter objetos agencia e conta, a conta possui id da agencia, ai vc faz uma consuta colocando como criterion que o numero da agencia seja a que você quer, ai ele te devolve uma lista de contas…

onde seus pojos saum:

Conta

Class Conta 
  int id;
  int numero;
  Agencia agencia
Class Agencia
  int id;

e numa pesquisa para conta, você adiciona o criterion:

Restrictions.eq&#40;&quot;agencia.id&quot;, numero&#41; 

Pelo menos assim eu faço…

O problema é que uma agencia tem várias contas e quero retorna contas por agencia…Não por id…