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.