Hibernate JPA Entity Listener @Pre und @Post funktionieren nicht wie erwartet

Ich erstelle eine Echtzeit-App und versuche, mithilfe von Entity-Listenern meinen Status auf dem neuesten Stand zu halten. Die Grundidee ist, dass ich, wenn sich ein Bereich der Geschäftslogik ändert, die betroffenen Entitäten neu lade und die Änderungen abstimme. Hier ist ein MWE:

@PrePersist
public void PrePersist() {
    LoggerFactory.logger(App.class).info(" >>> PrePersist count: " + getStars().size());
}
@PostPersist
public void PostPersist() {
    LoggerFactory.logger(App.class).info(" >>> PostPersist count: " + getStars().size());
}
@PreRemove
public void PreRemove() {
    LoggerFactory.logger(App.class).info(" >>> PreRemove count: " + getStars().size());
}

@PostRemove
public void PostRemove() {
    LoggerFactory.logger(App.class).info(" >>> PostRemove count: " + getStars().size());
}
private List<Star> getStars() {
    EntityManager em = HibernateUtilJpa.getEntityManager();
    List<Star> l = new ArrayList<Star>();
    try {
        em.getTransaction().begin();
        l = em.createQuery("from Star", Star.class).getResultList();
        em.getTransaction().commit();
    } catch (Exception e) {
        em.getTransaction().rollback();
    } finally {
        em.close();
    }
    return l;
}

Ich verwende eine separate API zum Einfügen / Entfernen von Sternen in die Datenbank. Ich hatte damit gerechnet, dass nach dem Persistieren aufgrund des hinzugefügten Elements ein Element mehr angezeigt wird und nach dem Entfernen eines weniger als vor dem Entfernen. Dies ist nicht der Fall, da sowohl nach dem Bestehen als auch nach dem Entfernen die falsche Anzahl von Elementen angezeigt wird, sodass vor dem Bestehen das Gleiche wie nach dem Bestehen und vor dem Entfernen das Gleiche wie nach dem Entfernen gilt. Ich bin mir sicher, dass es mit Hibernate-s Caching zu tun hat, aber ich verwende Transaktionen und alles geht durch dasEntityManager also kratz ich mir am kopf.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage