Olá desenvolvedores, neste tutorial aprenderemos como criar com Hibernate um novo objeto e relacioná-lo. Na camada de modelo, representada pelo package model temos implementada a entidade “UsuarioPessoa”, é a ela que iremos relacionar o objeto que será criado.

No contexto de relacionamento de muitos para um poderíamos criar a classe telefone e relacionar os vários números de telefone dessa classe a entidade UsuárioPessoa. É exatamente o que iremos fazer neste tutorial.

IMPLEMENTANDO OBJETO TELEFONE

Clique com o botão direito do mouse sobre o package model >> New >> Class, atribua a classe o nome de “TelefoneUser”. E para que seja uma tabela no banco de dados é preciso sinalizar com a anotação @Entity.

No escopo do método declara-se a chave primária sinalizando-a também com uma anotação, @Id. Devemos informar ainda que a chave será atualizada de forma automática, @GeneratedValue.

As informações que precisamos passar é o tipo e o número do telefone, sendo obrigatório a utilização da anotação @Column para especificar os detalhes da coluna de um campo que será mapeado. Onde o atributo nullable especifica se a coluna será marcada como “NÂO NULLO” quando o esquema é gerado. O valor default é que o campo seja nulo.

Agora precisamos referenciar o telefone para que no banco de dados possamos relacioná-lo, e saber a quem um dado número de telefone pertence. Assim, é preciso instanciar a entidade “UsuarioPessoa”.

Private UsuarioPesso usuarioPessoa;

A instanciação da classe deverá ser precedida da anotação @ManyToOne (Muitos para um), cujos atributos tornam a informação destes dados como obrigatória além de forçar o carregamento dos mesmos. Os métodos Getters and Setters… deverão ser gerados para cada um dos atributos.

E da mesma forma para que possamos carregar os números de telefone juntamente com o usuário, é preciso tê-lo mapeado (instanciado) na entidade UsuarioPessoa. No entanto, como um usuário pode ter vários números de telefone relacionados a ele, a instância do objeto Telefone será de uma lista de telefones. Gere os métodos Getters and Setters para a lista também.

Observe que neste caso, a classe TelefoneUser está sendo mapeada na classe UsuarioPessoa, assim, a anotação deverá indicar a possibilidade de um usuário estar relacionado a mais de um telefone.

MAPENDO A CLASSE

É preciso mapear a classe TelefoenUser na classe de persistência persistence.xml, o mapeamento compreende o nome do package seguido do nome da classe em questão.

<class>model.TelefoneUser</class>

EM POUCAS PALAVRAS

Com um pouco de prática e treino perceba que não é muito difícil implementar o relacionamento entre tabelas por meio do Hibernate. No entanto, você precisa conhecer as anotações e seus respectivos atributos a fundo, assim não haverá limites para o que poderá fazer com o Hibernate.