27 de março de 2011

JPA 2.0: Gerar classes a partir do banco com o Netbeans

Assim como o JPA pode gerar o banco de dados, é possível a partir do banco de dados gerar as classes já com as anotações do JPA!
Nesse exemplo vamos usar o Netbeans 6.9.1, não sei dizer se as outras versões do Netbeans funcionam da mesma forma. Tendo o seguinte banco, vamos gerar as classes automaticamente para ele:


Crie um novo aplicativo web no Netbeans, com o nome de GerarClasses, em pacotes de código fonte crie um pacote com o nome de model, depois disso gere o persistence.xml, caso não saiba como fazer repita o passo 1. Habilitando o JPA dessa postagem lembrando de informar o banco de onde deseja gerar as classes. 
Depois disso, clique com o botão direito em cima do pacote model, aí vai em Outro... selecione a categoria Persistence e depois Classe de entidade do banco de dados. Abrirá a seguinte janela:


Caso não tenha aparecido nenhuma tabela disponível, selecione a "Fonte de dados" e aguarde que as tabelas serão carregadas, depois disso, clique em Adicionar todas, e depois em Próximo...
Aparecerá esta janela:


Nessa não tem o que fazer, basta clicar em Próximo novamente. A próxima janela será para escolher qual é o tipo de associação (Lazy[lento] ou Eager[ancioso]) e o tipo de coleção (List, Set ou Collection). Quanto a associação o padrão é Eager, aí você deve decidir o que é melhor para você, o mesmo serve para o tipo de coleção, segue a janela:


E agora sim é apenas Finalizar. O projeto ficará assim:

Veja que nosso banco tinha 4 tabelas e foram criadas apenas 3 classes, isso aconteceu pois havia alí um relacionamento N-N, que foi resolvido com um @ManyToMany, para mais informações para esta anotação veja aqui.

=)

5 comentários:

  1. Realmente, para quem tem mais facilidade em criar o banco de dados do que as classes, essa ferramenta é excelente!

    ResponderExcluir
  2. Obrigado, seus artigos são bem esclarecedores e úteis.

    ResponderExcluir
  3. boa noite tudo bem?

    estou tentando fazer isso só q usando o SQL Server só que na etapa onde se seleciona a conexão as tabelas do banco não aparecem
    e aparece o seguinte erro: O nível do código-fonte Java deve ser de pelo menos 1.5 para criar classes de entidade neste projeto.

    pode me ajudar

    ResponderExcluir

Deixe seu comentário... ;)