// ein Name von beiden ist gesetzt
q.setParameter("nachname", lastName);
q.setParameter("vorname", firstName);
@SuppressWarnings("unchecked")
List<Name> selectedNames = q.getResultList();
Name name;
if (selectedNames.size() == 0) {
// Name ist neu in der Datenbank
name = new Name(lastName, firstName);
} else {
name = selectedNames.get(0);
}
if (!archivaleNames.contains(name)) {
name = entityManager.merge(name);
archivaleNames.add(name);
List<Archivale> archivalien = name.getArchivalien();
archivalien.add(aktuellesArchivale);
}
name.setMarked(true);
}
}
for (int i = archivaleNames.size(); i > 0; i--) {
Name archivaleName = archivaleNames.get(i - 1);
if (!archivaleName.isMarked()) {
archivaleName.getArchivalien().remove(aktuellesArchivale);
archivaleNames.remove(i - 1);
}
}
// speichere in den Compass-Index