gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 06:43:17 24 4
gpt4 key购买 nike

在 Spring JPA + Hibernate 环境中,我需要启用 Hibernate 实体过滤器。所以我应该有权访问 Hibernate Session 对象,但我正在使用 EntityManagerFactory 和 Spring JPA 魔法。有没有 Session 拦截器,所以我可以在每次 Spring 创建新 Session 时调用它的 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 - 使用 Spring JPA 和 Hibernate 访问 Session 以启用过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32228031/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com