2011-04-25 28 views
6

Một đối tượng được đặt trong kho dữ liệu sẽ có một bộ thẻ.Làm cách nào để bạn sử dụng các thuộc tính danh sách trong kho dữ liệu của Google App Engine trong Java?

public class Model 
{ 
    List<String> tagList 
    ... 
} 

Trong Python, Google App Engine có khái niệm về thuộc tính danh sách. Khái niệm tương đương trong Java là gì (nếu nó tồn tại) và làm thế nào bạn sẽ sử dụng các thuộc tính danh sách trong Java, trong JPA và/hoặc trong JDO?

+0

tôi hy vọng câu trả lời là KHÔNG sử dụng Python! – onejigtwojig

+0

có ai biết về triển khai JPA không? – onejigtwojig

+1

có các tùy chọn khác của API truy cập dữ liệu bên cạnh JPA và JDO có sẵn với Java, ví dụ: Objectify. – topchef

Trả lời

10

Xem bài viết trên blog của tôi chính xác về vấn đề này: Efficient Keyword Search with Relation Index Entities and Objectify for Google Datastore. Nó nói về việc thực hiện tìm kiếm với các thuộc tính danh sách bằng cách sử dụng Relation Index Entities và Objectify.

Để tóm tắt:

Query<DocumentKeywords> query = ofy.query(DocumentKeywords.class); 
    for (String keyword : keywords) { 
    query = query.filter("keywords", keyword); 
    } 

    Set<Key<Document>> keys = query.<Document>fetchParentKeys(); 

    Collection<Document> documents = ofy.get(keys).values(); 

nơi DocumentKeywords chứa một thuộc tính danh sách (bộ sưu tập) của tất cả các từ khóa cho thực thể Document của nó, và Document thực thể là một phụ huynh cho DocumentKeywords.

+1

bài đăng trên blog của bạn chính xác là những gì tôi đang tìm kiếm! cảm ơn.. – onejigtwojig

3

Trong JDO sử dụng

@Persistent 
private List<ContactInfo> contactInfoSets; 
Các vấn đề liên quan