O ouvinte da Entidade JPA do Hibernate @Pre e @Post não funcionam conforme o esperado

Estou criando um aplicativo em tempo real e tentando usar ouvintes de entidades para manter meu estado atualizado. A idéia básica é que sempre que uma área da lógica de negócios for alterada, recarregarei as entidades afetadas e reconcilio as alterações. Aqui está um 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;
}

Estou usando uma API separada para inserir / remover estrelas no DB. Eu esperava que a pós-persistência mostrasse um item a mais por causa do item adicionado e a pós-remoção seria um a menos que a pré-remoção. Não é esse o caso, tanto pós-persistência quanto pós-remoção mostram o número incorreto de itens; portanto, pré-persistir é o mesmo que pós-persistir e pré-remover é o mesmo que pós-remover. Tenho certeza de que tem a ver com o cache do Hibernate-s, mas estou usando transações e tudo passa peloEntityManager então eu estou coçando minha cabeça.

questionAnswers(1)

yourAnswerToTheQuestion