Olá desenvolvedores, neste tutorial criaremos as entidades dos “Estados” e “Cidades” dos combos dependentes, cuja base de dados alimentamos no tutorial anterior. Onde injetamos cerca de 10 mil dados entre nomes de Estados e cidades em nossa base de dados.
Neste tutorial criaremos as classes que representarão as tabelas criadas no banco de dados. Mantendo a ideia de um projeto organizado, essas classes ficarão dentro do package br.entidades. A primeira classe a ser criada é a dos “Estados”. E para que ela vire uma Entidade persistente e assim podermos utilizar o JPA – Java Persistence API e o Hibernate para carregar os dados, inserir, editar ou excluir, o nome da classe precisa ser precedido da anotação @Entity.
E ainda, a classe deverá implementar a “interface Serializable” com o objetivo de evitar que erros ocorram no processo de implantação do projeto. Esta interface habilita um processo chamado de serialização, isto é, salvando o estado atual dos objetos em arquivos em formato binário. Essa transformação do objeto em uma sequência binária é extremamente útil para enviar objetos pela rede, salvar no disco, ou na comunicação de uma JVM – Java Virtual Machine, com outra.
É preciso ainda listar a classe no arquivo persistence.xml, caso contrário, a IDE ficará apontando um erro no seu código.
<class>br.com.entidades.Estados</class>
Um dos atributos obrigatórios da implementação de uma Entidade persistente, é o identificador “id” do tipo Long, precedido das anotações @Id e @GeneratedValue.
A classe implementará ainda os atributos do tipo String nome e sigla referentes aos Estados. Gere para todos os atributos os métodos Getters and Setters, exceto para o serialVersionUID.
private String nome;
private String sigla;
ENTIDADE CIDADES
O mesmo procedimento aplicaremos a classe “Cidades” que deverá ser criada, também dentro do package br.entidades. E assim como a classe “Estados”, esta deverá ser anotada com o @Entity e implementar a “interface Serializable”. E igualmente é preciso listar a classe “Cidades” no arquivo de persistência, persistence.xml.
No entanto, além do atributo padrão do tipo Long para Entidades persistentes como o identificador “id”, e o atributo do tipo String nome, a classe “Cidades” deverá ainda, mapear a classe “Estados”. Assim, além da declaração dos atributos, criaremos o relacionamento entre as classes.
private Estados estados;
A regra que rege este relacionamento é o de muitos para um, indicado pela anotação @ManyToOne. Significa que mais de uma cidade poderá estar associada a um único Estado.
Do mesmo modo gere para todos os atributos os métodos Getters and Setters, exceto para o serialVersionUID. E ainda o hashCode() e equals() para o “id”, importantes para casos em que a comparação de objetos é necessária.
EM POUCAS PALAVRAS
Neste tutorial criamos as Entidades “Estados” e “Cidades”, e o relacionamento entre elas. É importante que mesmo em implementações como essas, você teste a sua aplicação para constatarmos se o que adicionamos não afetou nenhuma outra parte do sistema.