使用Spring JPA和Hibernate访问Session以启用过滤器

在Spring JPA + Hibernate环境中,我需要启用Hibernate实体过滤器。因此,我应该可以访问Hibernate Session对象,但是我正在使用EntityManagerFactory和Spring JPA魔术。有任何会话拦截器,因此每当Spring创建一个新的会话时,我都可以在其上调用enableFilters()方法吗?

回答:

我最终得到了AOP解决方案:

@Aspect

@Component

public class EnableFilterAspect {

@AfterReturning(

pointcut="bean(entityManagerFactory) && execution(* createEntityManager(..))",

returning="retVal")

public void getSessionAfter(JoinPoint joinPoint, Object retVal) {

if (retVal != null && EntityManager.class.isInstance(retVal)) {

Session session = ((EntityManager) retVal).unwrap(Session.class);

session.enableFilter("myFilter").setParameter("myParameter", "myValue");

}

}

}

以上是 使用Spring JPA和Hibernate访问Session以启用过滤器 的全部内容, 来源链接: utcz.com/qa/412207.html

回到顶部