@Override
 protected Void doInBackground() {
   try {
     JollydaysBuchhaltungPUJollydaysEntityManager.getTransaction().commit();
     JollydaysBuchhaltungPUJollydaysEntityManager.getTransaction().begin();
   } catch (RollbackException rex) {
     rex.printStackTrace();
     JollydaysBuchhaltungPUJollydaysEntityManager.getTransaction().begin();
     List<BuhaArea> merged = new ArrayList<BuhaArea>(buhaAreaList.size());
     for (BuhaArea B : buhaAreaList) {
       merged.add(JollydaysBuchhaltungPUJollydaysEntityManager.merge(B));
     }
     buhaAreaList.clear();
     buhaAreaList.addAll(merged);
   }
   return null;
 }
  /** Creates new form JPanelKonfigER */
  public JPanelKonfigER() {
    initComponents();

    // tracking table selection
    jTableArea
        .getSelectionModel()
        .addListSelectionListener(
            new ListSelectionListener() {
              @Override
              public void valueChanged(ListSelectionEvent e) {
                firePropertyChange(
                    "areaRecordSelected", !isAreaRecordSelected(), isAreaRecordSelected());
              }
            });
    jTableBooking
        .getSelectionModel()
        .addListSelectionListener(
            new ListSelectionListener() {
              @Override
              public void valueChanged(ListSelectionEvent e) {
                firePropertyChange(
                    "bookingRecordSelected", !isBookingRecordSelected(), isBookingRecordSelected());
              }
            });

    // tracking changes to save
    bindingGroup.addBindingListener(
        new AbstractBindingListener() {
          @Override
          public void targetChanged(Binding binding, PropertyStateEvent event) {
            // save action observes saveNeeded property
            setSaveNeeded(true);
          }
        });

    // have a transaction started
    JollydaysBuchhaltungPUJollydaysEntityManager.getTransaction().begin();
  }