2011-02-01 5 views
0

http://code.google.com/intl/sv-SE/appengine/docs/java/datastore/jdo/relationships.html (소유 된 일대일 관계)의 첫 번째 예를 살펴보십시오.Google App Engine JDO 관계 (Java)

나는 하나의 것을 아주 이해하지 못한다.
내 PersistanceManager에서 Employee를 얻는다면 동시에 ContactInfo를 얻을 수 있습니까? 아니면 사용하려고 할 때 ContactInfo를 얻을 수 있습니까?

동시에 얻는다면 소유 한 일대 다 관계는 어떻습니까?
예를 들어 Employee에 100 개의 ContactInfos가 포함 된 List가 있다고 가정 해 보겠습니다.
내 직원이 생기면이 모든 100 ContactInfos를 얻을 수 있습니까?

덕분에 상위 데이터를로드 할 때 하위 데이터를받지 않습니다 기본적으로
// F

답변

3

. 그러나 아이에게 액세스하려고하면 그 시간에로드됩니다. 이를 지연로드이라고합니다. 한 가지 중요한 점은 느슨하게로드 된 속성에 액세스하려고 시도하면 JDO 트랜잭션을 닫은 후에 엔티티가 분리되었으므로 예외가 발생한다는 것입니다.

JDO 페치 그룹을 사용하여 엔티티에서 열망하는로드를 구성 할 수 있습니다. Eager 로딩은 부모를로드 할 때 모든 하위 데이터를로드합니다. 이것은 트랜잭션 후에 속성에 액세스해야하거나 네트워크를 통해 엔터티를 클라이언트에 보내야하는 경우에 유용합니다.

추천 도서 :

Fetch Groups

JDO Layer Design

+0

HTTP를 통해 가고 2008 년 더 나은 존재하는 것을 정지가 JPOX에 대한 때문에 해당 페이지를 참조하지 않는 것이 좋습니다을 : //www.datanucleus .org/products/accessplatform_1_1/그게 당신이 사용하고있는 것입니다. – DataNucleus

+0

@DataNucleus : 귀하의 코멘트에있는 링크가 너무 깨졌습니다. 나는 FetchGroup과'PersistenceManager.newQuery()'를 사용하여 DataNucleus/JDO/MySQL로 작업하는 아이들을 열심히 가져 오기 위해 노력하고있다. 게으름로드가 작동하므로 올바른 관계 매핑이 있다는 것을 알고 있습니다. 그러나 열망하는로드를 시도 할 때, 나는 아이들을 얻지 못한다. 나는 예제를 가진 문서를 찾고있다. 링크를 업데이트 할 수 있다면 좋을 것입니다. – Asaph

+0

코멘트가 작성된 시점이 아니었지만 슬프게도 GAE는 여전히 고대 버전에 머물러 있습니다. 그냥 http://www.datanucleus.org를 사용하여 거기에서부터 탐색하십시오. – DataNucleus

관련 문제