Advertisement
purshink

removeTownsEx13()

Nov 3rd, 2020
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.29 KB | None | 0 0
  1.     private void removeTownsEx13() throws IOException {
  2.         System.out.println("Addresses in Sofia will be more if you don't clean DB before");
  3.         System.out.println("Type a town name:");
  4.         String townName = reader.readLine();
  5.         entityManager.getTransaction().begin();
  6.         Town townDelete = this.entityManager.createQuery("SELECT t  FROM Town t "
  7.                 + "WHERE t.name = :town", Town.class)
  8.                 .setParameter("town", townName)
  9.                 .getSingleResult();
  10.  
  11.         List<Address> addressesToDelete = this.entityManager
  12.                 .createQuery("SELECT a FROM Address a WHERE a.town.id= :id", Address.class)
  13.                 .setParameter("id", townDelete.getId())
  14.                 .getResultList();
  15.  
  16.         addressesToDelete
  17.                 .forEach(t -> t.getEmployees()
  18.                         .forEach(em -> em.setAddress(null)));
  19.  
  20.         addressesToDelete.forEach(this.entityManager::remove);
  21.         this.entityManager.remove(townDelete);
  22.         entityManager.getTransaction().commit();
  23.         int countDeletedAddresses = addressesToDelete.size();
  24.         System.out.printf("%d address%s in %s deleted",
  25.                 countDeletedAddresses,
  26.                 countDeletedAddresses == 1 ? "" : "es",
  27.                 townName);
  28.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement