示例#1
0
  private void btnToUnbekanntActionPerformed(ActionEvent e) {
    Lager unbekannt = LagerTools.getUnbekannt();
    StockTableModel2 model = (StockTableModel2) tblVorrat.getModel();
    Tools.log(txtLog, "Folgende Vorräte wurden auf Unbekannt umgebucht:");
    Tools.log(txtLog, "================================================");

    EntityManager em = Main.getEMF().createEntityManager();
    try {
      em.getTransaction().begin();

      for (int row = 0; row < model.getRowCount(); row++) {
        // Model Row Index Umwandlung ist hier unnötig. Markierungen bleiben unberücksichtigt.
        if (model.getStatus(row) == StockTableModel2.STATUS_FRAGLICH) {
          Stock stock = em.merge(model.getVorrat(row));
          em.lock(stock, LockModeType.OPTIMISTIC);
          Tools.log(txtLog, stock.getId(), stock.getProdukt().getBezeichnung(), "");
          stock.setLager(unbekannt);
        }
      }
      em.getTransaction().commit();
    } catch (OptimisticLockException ole) {
      em.getTransaction().rollback();
      Main.warn(ole);
    } catch (Exception ex) {
      em.getTransaction().rollback();
      Main.fatal(ex);
    } finally {
      em.close();
      loadVorratTable();
    }
    Tools.log(txtLog, "================================================");
  }