Olá desenvolvedores, no tutorial “RELACIONAMENTO ENTRE OBJETOS E TABELAS”, criamos o relacionamento entre tabelas usando o Hibernate. Desse modo, aprenderemos a fazer o “INSERT” do objeto telefone a ser relacionado. Note que o telefone precisa do objeto “UsuarioPessoa” para ser cadastrado.
Em um relacionamento de um para muitos, que é o relacionamento entre UsuarioPessoa e TelefoneUser, significa que um registro de usuário em uma tabela pode estar relacionado a um ou mais registros em outra tabela. Desse modo muitos números de telefones podem estar associados a um único usuário.
IMPLEMENTANDO O MÉTODO
Precisamos então de um método para gravar os registros telefônicos que compreendem dados como, tipo e número.
@Test
public void testeGravaTelefone(){
}
No escopo do método instanciaremos o DaoGeneric, um padrão para “gerenciar” toda a lógica de persistência de dados de uma aplicação. A classe DAO – Data Access Object, é a classe por meio do qual obteremos o Entity Manager. É por meio do Entity Manager que leremos e escreveremos em uma base de dados.
DaoGeneric <UsuarioPessoa> daoGeneric = new DaoGeneric<UsuarioPessoa>();
Precisaremos carregar os dados da entidade UsuarioPessoa, instanciando-a. É preciso passar como argumento qual usuário será carregado, visto que é para este usuário que gravaremos o registro de telefone. Do mesmo medo é também necessário a instanciação do objeto telefone.
O passo seguinte é “setar” todos os atributos, o tipo do telefone, o número, bem como o usuário para quem o telefone será atribuído.
Para finalizar chamamos o daoGeneric, que é o responsável pelas operações de persistência de banco de dados para salvar o registro.
daoGeneric.salvar(telefoneuser);
TESTETANDO O MÉTODO
Para “rodar” o teste selecione o nome do método que deseja executar, clique com o botão direito do mouse sobre ele >> Rum As >> JUnit test. Se após a execução do método, nenhum erro foi apresentado no console, basta então conferir na base de dados se o registro foi de fato excluído.
EM POUCAS PALAVRAS
O procedimento de consulta com hibernate é semelhante, mas precisamos adicionar um adendo na anotação @OneToMany, para que a aplicação possa trazer os dados do telefone.
@OneToMany(mappedBy = “usuarioPessoa”, fetch = FetchType.EAGER)
O método de consulta testeConsultaTelefones() será bem simples, trazendo o daoGeneric sendo instanciado logo no início. E carregando os dados da pessoa cujo registro queremos consultar.
Como um usuário pode ter um ou mais números de telefone relacionado a ele, será necessário também um “for each” para percorrer a lista e exibir os dados desejados. Usaremos o método padrão para saída de dados System.out, e a partir do mesmo método recuperaremos os dados para mostrá-los no console.