0

를 검색 다음 코드 :구글 앱 엔진 엔티티 관리자는, 내가 엔티티 관리자의 인스턴스를 생성하기 위해 모두 javax의 엔티티 관리자 (javax.persistence.EntityManagerFactory)를 사용하고 이전 값 GAE를 사용

event = mgr.find(Event.class, id); 

문제는 처음으로 데이터를 검색하면 모든 것이 잘된다는 것입니다. 그러나 GAE 대시 보드의 "Datastore Viewer"를 통해 값을 수동으로 편집하면됩니다. 다음에 데이터를 호출 할 때 "find"메서드를 사용하면 반환되는 값은 이전 값입니다. 새 값을 가져 오려면 수동으로 백엔드를 다시 업로드해야합니다.

어떤 원인일까요? mgr.find가 항상 최신 값을 부르고 싶습니다. 감사.

답변

0

엔티티가 캐시됩니다. Datastore Viewer를 통해이를 변경하면 백엔드에 의해 캐시 된 엔티티는 영향을받지 않습니다.

데이터 저장소 뷰어에서 변경 한 후 "Memcache 플러시"버튼을 클릭하십시오. 이 방법으로 문제가 해결되지 않으면

, 당신은 당신의 캐싱에 대한 구성을 변경해야 할 수도 있습니다 :

레벨 2 캐시는 기본적으로 활성화되어 있습니다. 이전 기본값 인 을 사용하려면 datanucleus.cache.level2.type 지속성 등록 정보를 none으로 설정하십시오. (대안 클래스 경로에서 datanucleus 캐시 플러그인을 포함하고, L2 캐싱에서 Memcache를 사용하는 javax.cache하는 지속성 속성을 datanucleus.cache.level2.type을 설정합니다.

0

memcache에 플러싱 시도하고 시도 쿼리를 다시 실행합니다. 마지막으로 유지 된 엔티티 데이터는 검색 할 때까지 검색된 것입니다.