Eu estou fazendo um cadastro de uma sala de aula. As classes modelo:
public class Sala{//sem os gets e sets, bem resumido
@id
private String codigo;
private String descrição;
@id
@manytoone
private Andar andar;
@id
@manytoone
private TipoSala tiposala;
}
public class Andar{
@id
@manytoone
private Pavimento pavimento
@id
@manytoone
private Bloco bloco
}
Percebe-se que existe 2 atributos que precisam ser preenchidos completamente antes de salvar(andar e tiposala), e o que eu tenho de informação deles que vem do formulario são apenas os códigos de andar e tiposala.
Sem o hibernate, eu faria o seguinte:
-Criaria um dao para buscar pelo código;
-Preencheria um objeto(Andar andar)
-Após setaria no objeto SALA para poder salvar.
O metodo ficaria assim:
public Andar findByPrimaryKey(Pavimento pavimento,Bloco bloco){
//restante do metodo
return andar;
}
A minha dificuldade está aqui, com hibernate para fazer esse tipo de busca por chave primária composta:
Eu sei que, se fosse apenas uma chave, eu faria assim:
public T procura(int id) {
return (T) session.load(this.classe, id);
}
Eu andei pesquisando no google, vi algo como uma outra configuração na classe ANDAR, tipo, criando uma nova classe para colocar somente as chaves primarias compostas.Algo do tipo:
public class AndarPK{
private Pavimento pavimento;
private Bloco bloco;
//gets e sets
}
e na classe andar ficaria:
public class Andar{
private AndarPK id;
//gets e sets
}
Alguem poderia me ajudar a desvendar a maneira mais eficaz de fazer esse tipo de busca???
