Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Trabalhando com JPA Collections e MySQL - Revista SQL Magazine 102 - Parte 1
Este artigo apresenta como devemos proceder para trabalharmos com JPA em conjunto com o MySQL. Para isso, o artigo apresenta alguns conceitos importantes para o entendimento do JPA e o explica através de um conjunto de exemplos práticos.
Você não gostou da qualidade deste conteúdo?
(opcional) Você gostaria de comentar o que não lhe agradou?
[Artigo disponível no Leitor Digital DevMedia. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da SQL Magazine 102
Hoje em dia quase tudo se resume a dados, e por boas razões. Em um mundo cada vez mais conectado o valor dos dados é enorme e é fácil de perceber como as organizações andam na corda bamba quando se trata de dados. Por que na corda bamba? Por que muita quantidade de dados normalmente está associado a muita quantidade de dinheiro, e ter acesso aos dados pode envolver algum grau de violação de privacidade.
Além das questões de negócios, no centro do problema está uma tecnologia já bastante difundida e confiável: os bancos de dados relacionais. A informação que reside nestas bases de dados são tão importantes que elas tendem a sobreviver mais que os próprios aplicativos criados para povoá-las. Assim, um sólido conhecimento da área de banco de dados é um bom investimento para os programadores que estão ansiosos para serem mais valorizados.
Em sistemas orientados a objetos, uma grande dificuldade é encontrada quando o assunto é persistência. Pode não parecer tão problemático assim, mas a transformação de objetos em dados persistentes no espaço relacional pode ser um trabalho árduo. O grande problema nessa situação são as duas estruturas totalmente diferentes que são empregadas em cada camada do sistema. No mundo relacional são criadas tabelas e colunas para armazenar informações, enquanto no modelo orientado a objetos temos a presença de classes e objetos.
Para solucionar esse problema, há alguns anos era preciso criar instruções SQL para transformar objetos em linhas do banco de dados, porém muito tempo era perdido com essa prática. Além de o desenvolvedor precisar implementar o código para a criação do banco de dados totalmente compatível com o modelo orientado a objetos, a cada nova operação de inserção, alteração, exclusão ou pesquisa, uma quantidade imensa de código no sistema era gerada a fim de tratar essa incompatibilidade de estruturas. Em longo prazo, isso tudo se tornava um trabalho exaustivo, não reutilizável e, muitas vezes, falho.
Surge então o conceito de ORM (Object-Relational Mapping ou Mapeamento Objeto-Relacional). Ele propõe a transformação de classes e objetos em tabelas e tuplas de maneira fácil e reutilizável. Ao invés do programador ter que criar todas as instruções SQL para as operações no banco de dados, ele pode utilizar um framework capaz de fazer essas operações sem sair do paradigma orientado a objetos. Assim, todo aquele trabalho árduo de codificação e testes se resume a algumas configurações e um mínimo de código, sem manter um contato direto com o banco de dados.
Até algum tempo atrás, o mapeamento objeto relacional era só um conceito para qualquer linguagem orientada a objetos e para que esse conceito saísse do papel, em 2006 a Sun lançou a JSR 220 especificando os Enterprise JavaBeans (EJB) 3.0. Juntamente com o EJB 3.0, a Java Persistence API 1.0 foi disponibilizada ao público desenvolvedor. Mais posteriormente, em 2009, a JSR 317 foi divulgada, dessa vez contendo apenas a especificação JPA 2.0. Em suma, essa API apresenta anotações e interfaces para que os frameworks que forem desenvolvidos sigam um padrão de funcionamento. A JPA não possui grande quantidade de código. De fato ela não faz o papel de um framework ORM. Ela apenas dita como eles deverão funcionar na plataforma Java.
A plataforma Java EE fornece hoje um grande número de ferramentas úteis e práticas. Java Persistence API 2.0 (JPA 2), Enterprise JavaBeans 3.1 (EJB 3.1) e JavaServer Faces 2.0 (JSF 2) são três destas ferramentas cuja popularidade é especialmente grande. É uma popularidade merecida: JPA facilita grandemente o trabalho de lidar com persistência de dados, JSF fornece um novo padrão, mais simples e eficiente, para o desenvolvimento de aplicações web em Java e EJB é excelente, entre outras coisas, para integrar componentes de uma aplicação de maneira que reduza o acoplamento.
"
Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Rodrigo Oliveira Spinola
Doutor e Mestre em Engenharia de Sistemas e Computação (COPPE/UFRJ). Diretor de Operações da Kali Software (www.kalisoftware.com). Editor Chefe das revistas Engenharia de Software Magazine, SQL Magazine e Web Mobile.
3 COMENTÁRIOS

código fonte

