Serve pra você trabalhar com objetos Java, sem ter que manipular tabelas diretamente no phpmyadmin, e no contexto onde o banco de dados é acessado por apenas uma aplicação (monolitico).
Se você quer compartilhar os dados com várias aplicações, o melhor seria expor o banco como um serviço em vez de objetos.
@javaflex o meu problema já foi SOLUCIONADO lá em cima com o código abaixo e nas minhas classes DAO já utilizo códigos como esse que vc postou. Enfim consegui que o JPA me trouxesse objetos atualizados a partir do BD, abrindo e fechando o EntityManagerFactory conforme o código abaixo.
public class PainelListaDeFuncionarios extends javax.swing.JPanel implements ActionListener{
private final DefaultTableModel modelo1;
private final JanelaPrincipal janelaPai;
List funcionarios = null;
EntityManagerFactory fctr;
Se desabilitar o cache do hibernate, vai ter problema de performance porque cada join no SQL é uma viagem ao banco. Agora o desenvolver da aplicação tem que ser DBA e se preocupar em gerar queries otimizadas…
Enfim, a essa altura os benefícios do ORM já foram por água a baixo.
EntityManagerFactory carrega as configurações mapeadas, imagina ficar toda hora carregando configurações? Se considera isso boa prática então tudo bem.
Veja bem nessa linha, ele cria o EntityManager como tinha te falado:
ou eclipse. o eclipese tbm faz.
agente Começa fazendo à mao mesmo, porém depois que entendenmos, devemos usar essas ferramentas pra agilizar. principlamente se o projeto for robusto. Lembrem se do manifesto ágil !!
Mas ferramentas como Hibernate foram criadas justamente para que o desenvolvedor não tenha que fazer isso, ou seja, não ter que pensar em termos de tabelas, SQL, e como escrever queries otimizadas. Em teoria você apenas navegaria pelo objeto e suas associações.
Sim, acredito que já tenha ficado claro que não defendo usar Hibernate nestes casos, é complicação desnecessária, além de consumir recurso em vão. Só te expliquei que é possível.
altera os dados no phpmyadmin > info não aparece nos objetos > desliga o cache > problema de performance > desenvolvedor deixa de de desenvolver a aplicação e a UI pra otimizar query.
É possível, mas pelo menos uns 5 graus de separação do problema original.