@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