JPA (eclipselink)를 사용하여 데이터베이스에서 데이터를 가져오고 싶습니다. 데이터베이스는 다른 여러 소스로 변경되므로 필자가 수행 한 모든 검색에 대해 데이터베이스로 돌아가고 자합니다. 나는 캐시를 비활성화하는 것에 관한 많은 게시물을 읽었지만 이것이 효과가없는 것 같습니다. 어떤 아이디어? JPA (eclipselink)에서 캐싱 사용 안 함
나는 다음과 같은 코드를 실행하려고 : 나는 그것이 거짓하려는 동안 EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("default");
EntityManager em = entityManagerFactory.createEntityManager();
MyLocation one = em.createNamedQuery("MyLocation.findMyLoc").getResultList().get(0);
MyLocation two = em.createNamedQuery("MyLocation.findMyLoc").getResultList().get(0);
System.out.println(one==two);
하나 == 두 사실이다.
I 각 추가 시도/모든 내의 persistence.xml에 다음
<property name="eclipselink.cache.shared.default" value="false"/>
<property name="eclipselink.cache.size.default" value="0"/>
<property name="eclipselink.cache.type.default" value="None"/>
나는 또한 엔티티 자체에 @Cache 주석을 추가하는 시도 :
@Cache(
type=CacheType.NONE, // Cache nothing
expiry=0,
alwaysRefresh=true
)
내가 오해하고 있는가 뭔가 ?
제임스를 호출하여 데이터베이스로 이동하기 위해 각각의 쿼리를 강제 할 수, 캐싱은 <속성 이름 = "eclipselink.cache.shared.default (벗어났다 "value ="false "/> ) 테스트했을 때? – Justin
죄송 합니다만, 캐싱이 꺼져 있습니다. 나는 여전히이 문제를 안고 있으며 해결책이 없다. – James