Bom dia, comunidade GUJ.
Mais uma vez venho pedir ajuda de vocês para que eu consigo continuar a caminhar no universo java e no framewok Hibernate.
A minha situação é a seguinte:
Tenho duas tabelas no meu banco de dados, mapeados corretamente e com seus respectivos modelos POJOS. Eu estou conseguindo recuperar os dados perfeitamente do banco de dados e listar na aplicação, porém gostaria de inserir dados pela tabela de “funcionario” e apenas indicar o índice da chave estrangeira para indicar um elemento da tabela “setor”. A ídéia é apenas inserir o índice e não inserir um novo registro na tabela de “Setor” todas as vezes que inserir um novo funcionário. Como ficaria uma possível implementação para gravar desta maneira no banco de dados?
Não sei se entendi bem a dúvida, mas basicamente tem duas formas se você “setar” um objeto já existente.
1 - Recuperando o objeto Setor da persistencia
Funcionariofuncionario=newFuncionario(); //nova instancia de FuncionarioSetorsetor=dao.buscarSetorBLABLABLA...//recuperaosetordodominiofuncionario.setSetor(setor); //adiciona no objeto funcionario
2 - Criar o objeto Setor manualmente e setar um ID existente
Funcionario funcionario = new Funcionario(); //nova instancia de Funcionario
Setor setor = new Setor(); //Nova instancia
setor.setId(1); //supondo que o 1 já exista no banco de dados.
funcionario.setSetor(setor); //adiciona no objeto funcionario
Espero ter ajudado
java.filipe
Obrigado, Jair.
Acho que esta com certeza é a solução para minha dúvida.
Aproveitando o ensejo, gostaria de perguntar…com qual tipo de collection é melhor utilizar List ou Set???
Obrigado
Jair_Rillo_Junior
Não existe a melhor forma, existe a forma que se adequa melhor ao seu requisito.
List e Set tem suas particularidades, você tem que ver a diferença delas e ver com o seu requisito qual é melhor utilizar.
java.filipe
Jair Rillo Junior:
Não existe a melhor forma, existe a forma que se adequa melhor ao seu requisito.
List e Set tem suas particularidades, você tem que ver a diferença delas e ver com o seu requisito qual é melhor utilizar.
Uma pergunta jair…Quando eu for persistir meus dados e gravá-los no banco de dados, existe alguma diferença se eu estiver usando um HashSet e ou ArrayList???
Ou é indiferente??
Agradeço a atenção…
Jair_Rillo_Junior
Para persistir não. Os mapeamentos @OneToMany, @OneToOne, etc etc etc, também são feitos da mesma maneira.
Como eu disse, existem diferenças na usabilidade deles, porém o modo para persistir é exatamente o mesmo.
java.filipe
Agora entendi perfeitamente…todas as minhas dúvidas foram solucionadas…
Obrigado