有时无法在Hibernate 5.3中触发事件侦听器

时间:2018-08-23 17:12:51

标签: hibernate event-listener

我有以下类在Post-Commit-Insert | Delete | Update期间注册事件侦听器。

@Component
public class EntityEventListenerRegistry{

@Autowired
private SessionFactory sessionFactory;

@Autowired
private AuditLogPostInsertEventListener auditLogPostInsertEventListener;

@Autowired
private AuditLogPostUpdateEventListener auditLogPostUpdateEventListener;

@Autowired
private AuditLogPostDeleteEventListener auditLogPostDeleteEventListener;

@PostConstruct
public void registerListeners() {
    EventListenerRegistry registry = ((SessionFactoryImpl) sessionFactory).getServiceRegistry().getService(EventListenerRegistry.class);
    registry.getEventListenerGroup(EventType.POST_COMMIT_INSERT).appendListener(auditLogPostInsertEventListener);
    registry.getEventListenerGroup(EventType.POST_COMMIT_UPDATE).appendListener(auditLogPostUpdateEventListener);
    registry.getEventListenerGroup(EventType.POST_COMMIT_DELETE).appendListener(auditLogPostDeleteEventListener);
}

但是,我发现有时无法触发事件监听器。

例如: 我有domainA和domainB并创建了domainADao和domainBDao来保存记录。

当我使用domainADao.save(domainA)保存domainA记录时,提交插入后侦听器也可以正常运行,并且记录可以保存到数据库中。

但是,我在domainB中做同样的事情。我使用domainBDao.save(domainB)保存了domainB记录,该记录也可以保存到数据库中,但是未插入提交后监听器。

有人知道原因吗?

0 个答案:

没有答案