有没有办法注册一个事务监听器,这样我就可以在事务开始时激活 Hibernate-Session 上的过滤器?
为了同样的目的,我设法为 EntityManager
开发了一个生产者,但是如果 @Transactional(TxType.REQUIRES_NEW)
在同一个请求中启动了一个新事务,这似乎不起作用,因为 EntityManager
被重用,但过滤器被清除。
一个解决方案似乎是 Hibernate-Interceptor,但我不知道如何在 Quarkus 中注册这样的拦截器。
答案 0 :(得分:0)
在 Quarkus 专家的帮助下,我设法找到了解决方案:
将 EntityManager
-producer 的作用域从 @RequestScoped
设置为 @TransactionScoped
,这样每次事务开始时都会调用producer。
为了完整性:如果您确实需要监听事务开始,那么 @Observes @Initialized(TransactionScoped.class)
中的某些内容可能会奏效。