[SPRING] 필터를 가능하게하기 위해 Spring JPA와 Hibernate를 사용하여 Session에 접근
SPRING필터를 가능하게하기 위해 Spring JPA와 Hibernate를 사용하여 Session에 접근
Spring JPA + Hibernate 환경에서 나는 Hibernate 엔티티 필터들을 가능하게 할 필요가있다. 그래서 나는 Hibernate Session 객체에 접근해야만한다. 그러나 나는 EntityManagerFactory와 Spring JPA 마법을 사용하고있다. 모든 Session 인터셉터가 있으므로 Spring이 새 Session을 만들 때마다 enableFilters () 메서드를 호출 할 수 있습니까?
해결법
-
==============================
1.나는 AOP 해결책으로 끝냈다 :
나는 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"); } } }
-
==============================
2.여기 하나는 개체에 대한 is_delete를 지원하는 응용 프로그램 용입니다.
여기 하나는 개체에 대한 is_delete를 지원하는 응용 프로그램 용입니다.
entityManager.unwrap(Session.class) .enableFilter("notDeleted") .setParameter("isDeleted", false);
from https://stackoverflow.com/questions/32228031/access-to-session-using-spring-jpa-and-hibernate-in-order-to-enable-filters by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Java EE 및 스프링 부트에서 등록 정보를 핫 로딩하는 방법은 무엇입니까? (0) | 2019.01.06 |
---|---|
[SPRING] 스프링 MVC 매핑 문제 (0) | 2019.01.06 |
[SPRING] ClassReader에서 ArrayIndexOutOfBoundsException으로 인해 ApplicationContext를로드하지 못했습니다. (0) | 2019.01.06 |
[SPRING] JasperReports : 하위 보고서를 찾을 수 없습니다. (0) | 2019.01.06 |
[SPRING] Maven Shade 플러그인으로 Spring 3 NamespaceHandler 문제 발생 (0) | 2019.01.06 |