2017-11-28 21 views
0

데이터 저장소에 있고 객체화되어 있습니다. 두 가지 종류의 1- 게시물 2 개의 댓글이 있습니다.
게시물은 댓글의 부모입니다.Objectify의 상위 하위 엔티티 합치기

objectify에 최근 3 개의 댓글이있는 모든 게시물을 가져오고 싶습니다.
조상 관계를 사용하여 주석을 얻는 방법을 알고 있습니다. 그러나 나는이 글을 와 어떻게 결합시킬 수 있습니까?

ofy().load().type(Comments.Class).ancestor(parentPostKey).limit(3).list(); 

이미 포스트의 ID가 너무 게시물을 점점 또한 중 Y

매우 쉽게 알() 부하() 키 (키)를 부탁해()..;

하지만이 두 쿼리를 어떻게 하나로 결합 할 수 있습니까? 그리고 결과를 단일 클래스에서 다시 얻으십시오. 이런 식으로.

ResultClass results = // Combine query 

// Foreach 
results.getPost().getContent(); 
results.getComment().getContent(); 
// end Foreach 

가능한가요? 대체 무엇이 아닌지.

제안 사항 Please please.

답변

0

게시물의 자녀를 말할 필요가 없습니다. 이렇게하면 다양한 방식으로 제한 될 수 있습니다. 가장 중요한 점은 게시물에 댓글을 추가 할 수있는 속도가 약 1/초로 제한된다는 것입니다 (모두 동일한 엔티티 그룹에 포함되기 때문입니다).

대신

, 단순히 Comment 엔티티에 Key<Post>을 저장합니다

@Entity 
public class Comment { 

    //... 

    @Index 
    Key<Post> parentPost; 

    //... 
} 
다음 단순히 특정 값에 parentPost 설정 한 모든 의견에 대한 쿼리

: 또는

ofy().load().type(Comment.class).filter("parentPost", postKey.getRaw()).limit(3).list(); 

을, 당신이 저장할 수 Post 클래스에있는 Comment 개체의 Key 초를 List<Key<Comment>>에 입력 한 다음 @Load annotatio n을 사용하면 효율적으로 가져올 수 있지만 이전과 동일한 속도 제한 문제가 발생합니다.