2012-01-20 2 views
0

Eclipselink JPA (2.0)를 사용하고 있습니다. 일반 속성 설정이나 새로 고침 또는 힌트 설정이 제대로 작동하지 않아서 모든 캐시를 지우려면 entityManagerFactory에 액세스해야합니다.Eclipselink의 EntityManager에서 EntityManagerFactory에 액세스하는 방법

entityManager.getEntityManagerFactory().getCache().evictAll(); 

을하지만은 EclipseLink 위해 entityManager에서 getEntityManagerFactory (라고 그런 방법은) 없다 : 나는이 코드 조각에서 그것을 할 수있는 방법을 발견했다. 내가 어떻게 해?

저는 EntityManagerFactory에 스프링 빈 구성을 사용하고 있습니다. 그리고 entityManager는 DAO 레이어에서 @PersistenceContext로 주석 처리됩니다. 봄 콩 설정에서

:

<bean id="entityManagerFactory" 
     class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean"> 
<property name="jpaVendorAdapter" ref="jpaVendorAdapter" /> 
<property name="jpaDialect" ref="jpaDialect" /> 
<property name="persistenceUnitName" value="MyService" /> 
</bean> 

DAO에서 :

private EntityManager entityManager; 

@PersistenceContext 
public void setEntityManager(EntityManager entityManager) { 
    this.entityManager = entityManager; 
} 

감사합니다.

+0

JPA 2 공급 업체는 모두 동일한 인터페이스를 사용하기 때문에 나열된 방법과 관련이 없습니다. 실제 문제를 진단 할 수 있도록 관련 코드를 게시하십시오. – Perception

+0

소스 코드로 편집하십시오. – popcoder

+0

어떤 버전의 Spring을 사용하고 있습니까? 좋은 JPA 2 지원을 원할 경우 버전 3.0을 사용해야합니다. – Perception

답변

관련 문제