Guten Abend!
Ich habe eine Anwendung, mit der ich per EntityManager mit der Datenbank agiere (Hsqldb, JPA, Eclipselink).
Habe folgende Datenbank - Funktionen:
Wenn ich das so laufen lasse kann ich Personen anlegen und persistent speichern. Das Problem: Lege ich einen Datensatz Person an muss ich, um den gleichen DS zu löschen, erst das Programm einmal neustarten.
Soweit ich mich jetzt einlesen konnte, liegt das wohl daran, dass der EntityManager die Persistenz-Ebene nicht aktualisiert. Um das zu gewährleisten wollte ich es mit refresh() versuchen. (bzw. flush/clear)
Wenn ich Kommentar (1) jetzt einkommentiere funktioniert aber das saven nicht mehr korrekt.
Und (2)+(3) bzw. (4) hat einfach rein garnichts bewirkt...
Ich habe eine Anwendung, mit der ich per EntityManager mit der Datenbank agiere (Hsqldb, JPA, Eclipselink).
Habe folgende Datenbank - Funktionen:
Java:
public Person savePerson(String name, int alter) {
Person p = new Person();
try {
entityManager.getTransaction().begin();
p.setName(name);
p.setAlter(alter);
p = entityManager.merge(p);
// 1. entityManager.refresh(p)
entityManager.getTransaction().commit();
} catch (Exception e) {
entityManager.getTransaction().rollback();
}
return p;
}
public void deletePerson(Long id) {
try {
entityManager.getTransaction().begin();
// 2. entityManager.flush();
// 3. entityManager.clear();
Person p = (Person) entityManager.find(Person.class, id);
// 4. entityManager.refresh(p);
entityManager.remove(p);
entityManager.getTransaction().commit();
} catch (Exception e) {
entityManager.getTransaction().rollback();
}
}
Wenn ich das so laufen lasse kann ich Personen anlegen und persistent speichern. Das Problem: Lege ich einen Datensatz Person an muss ich, um den gleichen DS zu löschen, erst das Programm einmal neustarten.
Soweit ich mich jetzt einlesen konnte, liegt das wohl daran, dass der EntityManager die Persistenz-Ebene nicht aktualisiert. Um das zu gewährleisten wollte ich es mit refresh() versuchen. (bzw. flush/clear)
Wenn ich Kommentar (1) jetzt einkommentiere funktioniert aber das saven nicht mehr korrekt.
Und (2)+(3) bzw. (4) hat einfach rein garnichts bewirkt...