Quantcast
Channel: GUJ - Tópicos com a tag hibernate
Viewing all articles
Browse latest Browse all 759

Método findbyid Hibernate Jpa para diferentes classes

$
0
0

@Silverhauk escreveu:

Boa tarde pessoal,

Sou novo em desenvolvimento e estou fazendo um CRUD simples utlizando jpa e hibernate. O problema é o seguinte, se eu instanciar os objetos, tanto o entityManager quanto a classe que vou persistir, na classe main e executar o método, o código funciona perfeitamente, como no exemplo:

EntityManager entityManager = jpautil.getEntityManagerFactory().createEntityManager();
entityManager.getTransaction().begin();
cliente d = new cliente();
d.setId(2);
d = entityManager.find(cliente.class, d.getId());
entityManager.getTransaction().commit();
entityManager.close();
jpautil.shutdown();

System.out.println();
System.out.println();
System.out.println("Código do cliente: "+ d.getId());
System.out.println("Nome do cliente: "+ d.getNome());
System.out.println("CPF do cliente: "+ d.getCpf());
System.out.println();
System.out.println();

No entanto, eu gostaria de direcionar toda essa parte do entityManager
para uma classe DAO, deixando no main apenas a instancia da classe cliente e criar um método localizaporid dentro da classe cliente, ficando da seguinte forma:

Classe DAO:

public Classe_generica findbyid (Classe_generia.class, int id){ EntityManager entityManager = jpautil.getEntityManagerFactory().createEntityManager(); entityManager.getTransaction().begin(); Classe_generica cg = new Classe_generica(); cg = entityManager.find(Classe_generica.class, id); entityManager.getTransaction().commit(); entityManager.close(); jpautil.shutdown(); return cg; }

Sabendo que criamos o método “localizaporid” dentro da classe cliente e este
chama o método “findbyId” da classe DAO, no main ficaria:

cliente d = new cliente(); d.setId(2); d = d.localizaporid(cliente.class, cliente.getId());

A grande jogada, é que gostaria de repetir isso para diversas classes utilizando
essa mesma lógica, onde uma classe de fornecedores também teria o método “localizaporid”, chamando findbyid da classe DAO.

Obrigado!

Mensagens: 2

Participantes: 2

Ler tópico completo


Viewing all articles
Browse latest Browse all 759


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>