lin*_*tto 7 spring hibernate spring-orm
在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");
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1620 次 |
| 最近记录: |