@Override
  public WorkPlace getWorkPlaceDetails(long id) {
    Hairdressers hairdressers = hairdressersDAO.findOne(id);
    List<Employee> employees = hairdressers.getEmployees();

    WorkPlace place = new WorkPlace(hairdressers);

    float placeAvgRate = CommonUtils.calcPlaceAvgRate(employees);
    place.setRate(placeAvgRate);

    return place;
  }
  @Override
  public void saveChanges(WorkPlace workPlaceOld, WorkPlace workPlace) throws PlaceException {
    if (CommonUtils.needSaveChangesToDB(workPlaceOld, workPlace)) {
      long placeID = workPlaceOld.getId();
      Hairdressers hairdressersDB = hairdressersDAO.load(placeID);

      try {
        Object synchoObj = SynchronizationProvider.getSynchoObj(Hairdressers.class, placeID);

        synchronized (synchoObj) {
          validChanges(workPlace, hairdressersDB);
          applyChanges(hairdressersDB, workPlace);
          hairdressersDAO.update(hairdressersDB);
        }
      } finally {
        SynchronizationProvider.relaseSynchoObj(Hairdressers.class, placeID);
      }
    }
  }