// utworznie encji zajêæ
  public void zaplanujAutoStart(
      long idProwadzacego, long idPrzedmiotu, long idGrupy, int ileZajec, Date pierwszeZajecia) {

    Prowadzacy prowadzacy = em.getReference(Prowadzacy.class, idProwadzacego);
    Przedmiot przedmiot = em.getReference(Przedmiot.class, idPrzedmiotu);
    Grupa grupa = em.getReference(Grupa.class, idGrupy);

    Calendar cal = Calendar.getInstance();
    boolean startCzasDST = cal.getTimeZone().inDaylightTime(pierwszeZajecia);

    //         HOUR			DAY		WEEK
    // 7days = 3600sec *  24hours *7 days  = 604800 seconds = 604800000 ms

    // TODO: Dostosowac do zmian czasu - letni/zimowy aby nie wplywalo na zmiane godziny jak teraz
    // (+1 h / -1 h) jakiœ If, etc
    for (int i = 1; i <= ileZajec; i++) {
      Zajecia zajecia = new Zajecia();
      zajecia.setProwadzacy(prowadzacy);
      zajecia.setPrzedmiot(przedmiot);
      zajecia.setGrupa(grupa);
      Date dataTych = new Date(pierwszeZajecia.getTime() + ((long) 604800000 * (long) i));

      // Obsluga zmiany czasu letni/zimowy
      if (startCzasDST) {
        if (!cal.getTimeZone().inDaylightTime(dataTych)) {
          dataTych = new Date(dataTych.getTime() + 3600000);
        }
      } else {
        if (cal.getTimeZone().inDaylightTime(dataTych)) {
          dataTych = new Date(dataTych.getTime() - 3600000);
        }
      }

      zajecia.setData(dataTych);
      em.persist(zajecia);
    }
  }
 public void zmienCzasRozpoczecia(long idProwadzacego, long idZajec, Date start) {
   Zajecia zajecia = em.getReference(Zajecia.class, idZajec);
   zajecia.setData(start);
   em.merge(zajecia);
 }