AppEngine数据存储使用EmbeddedEntity
表示嵌套实体。但我不理解Key
中EmbeddedEntity
的目的?何时可以使用?
例如:
Entity book = new Entity("Book");
book.setProperty("name", "Hollow Man");
book.setProperty("year", 2000);
EmbeddedEntity author = new EmbeddedEntity();
author.setKey(KeyFactory.createKey("AUTHOR", 123));
author.setProperty("name", "Den Simons");
book.setProperty("author", author);
datastore.put(book);
稍后我可以抓取book
并从中获取author
。 author
将具有密钥集,这意味着密钥是持久的。但是可以用这个键查询吗? EmbeddedEntity
javadoc说:
存储在数据存储区中时无法查询。
那么Key
中EmbeddedEntity
的目的是什么?
答案 0 :(得分:0)
https://cloud.google.com/appengine/docs/java/datastore/entities#Java_Embedded_entities上的示例显示了如何选择 实体的另一个实体作为嵌入式实体的密钥。 ,以便以后你可以“从嵌入式实体中恢复原始实体”。我想这并不是经常需要的,但是当你确实需要它时,也许是方便的!
相关的代码段是:
// Entity contactInfo = /*...*/;
EmbeddedEntity embeddedContactInfo = new EmbeddedEntity();
Key infoKey;
infoKey = contactInfo.getKey();
embeddedContactInfo.setKey(infoKey);