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...
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:
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.
=)
Muito útil!
ResponderExcluirRealmente, para quem tem mais facilidade em criar o banco de dados do que as classes, essa ferramenta é excelente!
ResponderExcluirObrigado, seus artigos são bem esclarecedores e úteis.
ResponderExcluirboa noite tudo bem?
ResponderExcluirestou 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