Hibernate JPA Entity слушатель @Pre и @Post не работают должным образом

Я создаю приложение в реальном времени и пытаюсь использовать прослушиватели сущностей, чтобы поддерживать свое состояние в актуальном состоянии. Основная идея заключается в том, что всякий раз, когда изменяется область бизнес-логики, я перезагружаю затронутые объекты и согласовываю изменения. Вот 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;
}

Я использую отдельный API для вставки / удаления звездочек в БД. Я ожидал, что post-persist покажет еще один элемент из-за добавленного элемента, а post-remove будет на единицу меньше, чем pre-remove. Это не так, и post-persist, и post-remove показывают неправильное количество элементов, поэтому pre-persist - то же самое, что post-persist, а pre-remove - то же самое, что post-remove. Я уверен, что это связано с кэшированием Hibernate-s, но я использую транзакции, и все проходит черезEntityManager так что я чешу голову.

Ответы на вопрос(1)

Ваш ответ на вопрос