2009-07-14 7 views
2

그래서 GWT 앱에 google datastore를 사용하고 있으며 동료가 대답이없는 흥미로운 질문이 떠 올랐습니다. 개체 중 일부를 삭제할 때 키 집합은 어떻게됩니까? 예를 들어 Google 데이터 스토어 익명의 일대 다 관계

,

Person.java

@PersistenceCapable(identityType = IdentityType.APPLICATION) 
public class Person { 
    @PrimaryKey 
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) 
    private Long id; 

    @Persistent 
    private Set<Key> favoriteFoods; 

    // ... 
} 

내가 데이터 저장소에서 favoriteFood 객체의 일부를 삭제하면 어떻게됩니까? 해당 객체의 키가 키 집합에 남아 있습니까? 세트에서 열쇠를 제거하는 것이 나의 책임입니까?

답변

5

넵. 키는 제거 할 때까지 거기에 머무를 것입니다. 또 다른 문제는 실수로 Cat 키를 개 목록에 붙일 수 있다는 것입니다. 현재 키는 타입 안전하지 않습니다. JDO 구현에서 모든 책을 유지하려면 현재 소유 관계를 사용해야합니다. 문서 here은 앞으로 변경 될 수 있음을 의미합니다. 나는 JDO가 익숙하지 않은 관계를 어떻게 처리 하는지를 알기에 JDO에 익숙하지 않다. 또한 소유 관계 "마술"조차도 데이터 저장소 자체가 아니라 JDO 계층에서 발생한다는 것을 알고 있어야합니다. 따라서 하나의 작업이 실제 데이터 저장소에 대한 실제 호출이 될 수 있습니다 (예 : 계단식 삭제 상황)