2011-10-15 4 views
1

참고 : 불쌍한 영어에 대해 유감스럽게 생각하지만 불어이지만 가능한 한 명확 해 지도록 노력할 것입니다.symfony2를 사용하여 ReadOnly doctrine2 엔티티에 대한 캐싱 결과

나는 Symfony2로 Doctrine2에 들어갔다. 새로운 물건을 배우고이 새로운 멋진 도구를 테스트하는 즐거움을위한 작은 게임을 만드십시오. 여기 내 거래는 다음과 같습니다 "

$user->getRace()->getName(); 

점은"인종 "거나 : 나는 편리한 개체의 구문의 혜택을 (등 항목, 인종 정보, 등) 데이터베이스에 내 게임 구성을 저장할 항목 "정보가 변경 될 가능성이 없습니다. Doctrine이 첫 번째 삽입 후에 이러한 엔티티에서 업데이트를 확인하지 못하도록 지시하는 @ReadOnly 엔티티 주석을 발견했습니다. 사용자 정보를 검색 할 때마다 쓸모없는 조인을 방지하기 위해 '투명하게'(doctrine이 나를 위해 사용한다는 의미) 캐시를 사용하는 방법을 알고 있다면 궁금합니다.

답변

4

@ReadOnly annotation은 Doctrine에게 flush 할 때 엔티티를 업데이트하지 않도록 지시합니다. 이벤트가 변경된 경우 업데이트되지 않습니다.

그래서 쿼리와 관련이 거의 없습니다.

레이스 또는 아이템 개체를 캐시하려면 result cache을 사용해야합니다. 모든 쿼리의 결과를 캐시 할 수 있습니다.

사용하기 쉽고 (재사용 할 수 있도록) 참조 된 엔터티에 대한 쿼리가 결과 캐시를 자동으로 사용하게하는 사용자 지정 주석을 구현할 수 있습니다.

+0

도움 주셔서 대단히 감사합니다. Doctrine2 추적기에 대한 개선 사항을 제출하고 지금은 직접 주석을 구현하려고합니다. – Joseph

관련 문제