2012-07-11 4 views
2

db4o로 객체를 지연로드하는 방법이 있는지 궁금합니다. 자습서를 모두 읽었으며이 기능이 존재하지 않는 것으로 보입니다.db4o로 지연로드

제 요점을 정리해 드리겠습니다. 예를 들어 50 개의 복잡한 필드가있는 House 개체가 있다고 가정 해 보겠습니다.

House 
1) location : Country (complex object) 
2) window : Window (complex object) 
3) livingRoom : Room (complex object) 
    . 
    . 
    . 
50) door : Door (complex object). 

내 프로그램의 특정 위치에서 집 위치 만 필요하다고 가정 해 보겠습니다. db4o의 투명 활성화 메커니즘을 켜면 위치 필드에 액세스 할 때 전체 집 개체가 으로 활성화됩니다. 즉 모든 필드가 값으로 채워져 있음을 의미합니다. 다른 모든 크고 복잡한 필드 (이 경우에는 사용하지 않을 것임)가 쓸모없고 값 비싼 데이터베이스에서 검색되기 때문에 이것은 바보입니다.

db4o에 개체를 완전히 활성화 시키거나 내 필요에 따라 개체의 특정 필드를 활성화하는 방법이 있다면 좋을 것입니다.

답변

0

정확하게 이해했다면 db4o의 투명 활성화는 모든 "하위 오브젝트"가 Activatable 인터페이스를 구현하고 (물론 구성에 TransparentActivationSupport을 추가했다는 것) 원하는 것을 달성하기에 충분해야합니다.

따라서 이 활성화되면 모든 필드는 null이 아니지만 활성화되지 않습니다. 이 필드에 액세스 할 때만 활성화됩니다.

모든 개체가 활성화되었다고 믿을 수있는 코드 (또는 간단한 테스트)를 게시 할 수 있습니까?

최고