Olá desenvolvedores, neste tutorial aprenderemos a implementar uma classe JPAUtil que é a classe que irá instanciar o EntityManager sempre que o projeto “subir” for colocado “online”. Ao criar o EntityManager a classe JPAUtil deixa-o disponível para toda a aplicação.
Assim, todos os usuários compartilharão dessa mesma instância do framework para realizar todas as operações do banco de dados, seja ela criar, consultar, atualizar ou excluir.
PADRÃO SINGLETON
Dessa forma não apenas implementaremos a classe JPAUtil, bem como o padrão Singleton. O Padrão de projeto Singlenton é uma arquitetura de construção de software orientado a objeto já testada e, portanto, validada pelo mercado, sendo uma das mais utilizadas.
O padrão Singleton estabelece a criação de objetos únicos para os quais existe apenas uma instância. Garantindo que a classe terá apenas uma instância de si mesma. Dessa forma, ao permitir a criação de um único objeto que será compartilhado por todos os usuários do projeto, ele oferece um ponto de acesso global.
CLASSE JPAUTIL
Primeiro é preciso criar o pacote “br.com.jpautil”, o objetivo é manter uma estrutura organizada para o projeto. Dentro do pacote criaremos uma classe Java a qual atribuiremos o nome de JPAUtil.
O escopo da classe traz a instância única de EntityManagerFactory, assim ela poderá ser acessada por todas as instâncias de objetos desta classe. Desse modo será declarada com o modificador static, significando que o objeto será o mesmo em todas as instâncias.
private static EntityMamagerFatory factory = null;
Criaremos agora um recurso que, caso não exista, criará um EntityManager sempre que a classe for chamada. E para garantir que o método seja executado apenas uma vez, estabelece-se uma condição para a sua execução.
Um Segundo método, também com o modificador static, portanto, único, retornando um EntityManager será criado.
EM POUCAS PALAVRAS
Neste tutorial criamos a classe JPAUtil que será a responsável por prover a parte de persistência de dados da aplicação, como a criação dos métodos que implementam as operações de banco de dados.