Advertisement
Guest User

Untitled

a guest
Dec 8th, 2019
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.95 KB | None | 0 0
  1. package pl.polsl.zti.db1.dao;
  2.  
  3. import java.util.List;
  4.  
  5. import javax.persistence.EntityManager;
  6. import javax.persistence.EntityManagerFactory;
  7. import javax.persistence.EntityTransaction;
  8. import javax.persistence.Persistence;
  9. import javax.persistence.Query;
  10.  
  11. import pl.polsl.zti.db1.ConfigConsts;
  12. import pl.polsl.zti.db1.domain.Client;
  13.  
  14. public class ClientDaoImplJpa implements ClientDao {
  15.  
  16. private static final EntityManagerFactory ENTITY_MANAGER_FACTORY;
  17.  
  18. static {
  19. ENTITY_MANAGER_FACTORY = Persistence.createEntityManagerFactory(ConfigConsts.PERSISTANCE_UNIT_NAME);
  20. }
  21.  
  22. @Override
  23. public Client getClient(int id) {
  24. final EntityManager entityManager = ENTITY_MANAGER_FACTORY.createEntityManager();
  25. final Client theClient = entityManager.find(Client.class, id);
  26. entityManager.close();
  27. return theClient;
  28. }
  29.  
  30. @Override
  31. public List<Client> getClients() {
  32. final EntityManager entityManager = ENTITY_MANAGER_FACTORY.createEntityManager();
  33. final Query query = entityManager.createQuery("select c from Client as c", Client.class);
  34. // działa w Hibernate, ale nie w EclipseLink:
  35. // final Query query = entityManager.createQuery("from Client", Client.class);
  36. final List<Client> clientList = query.getResultList();
  37. entityManager.close();
  38. return clientList;
  39. }
  40.  
  41. @Override
  42. public List<Client> getClients(String name) {
  43. if (name == null || name.trim().isEmpty()) {
  44. return getClients();
  45. }
  46.  
  47. final EntityManager entityManager = ENTITY_MANAGER_FACTORY.createEntityManager();
  48. final Query query = entityManager.createQuery("select c from Client as c where c.name like :param", Client.class);
  49. query.setParameter("param", name);
  50. final List<Client> clientList = query.getResultList();
  51. entityManager.close();
  52. return clientList;
  53. }
  54.  
  55. @Override
  56. public void insertClients(List<Client> clients) {
  57. //TODO Implementacja
  58. }
  59.  
  60. @Override
  61. public void updateClient(Client client) {
  62. //TODO Implementacja
  63. }
  64.  
  65. @Override
  66. public void deleteClient(Client client) {
  67. final EntityManager entityManager = ENTITY_MANAGER_FACTORY.createEntityManager();
  68. final EntityTransaction transaction = entityManager.getTransaction();
  69. transaction.begin();
  70.  
  71. // wersja 1
  72. // final Client managedClient = entityManager.merge(client);
  73. // wersja 2 - bardziej efektywna
  74. final Client managedClient = entityManager.find(Client.class, client.getId());
  75.  
  76. entityManager.remove(managedClient);
  77.  
  78. transaction.commit();
  79. entityManager.close();
  80. }
  81.  
  82. @Override
  83. public void deleteClient(int id) {
  84. // Zaimplementować usuwanie klienta o podanym id
  85. // Najpierw wydobyć klienta, potem go usunąć
  86.  
  87. //TODO Implementacja
  88. }
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement