2011-03-11 48 views
1

例如,我有实体Parent和实体Child。由于数据存储不允许连接,因此我无法在Parent中指定parentKey作为属性。我的意思是,我可以但那不会对我有任何好处。我可以指定实体作为数据存储属性来实现类似连接的功能吗?

但是,如果我想检索子查询中的父属性,我是否通过指定整个父实体作为Child中的属性来解决问题?这样做是否合适?

Entity parentEntity = new Entity("Parent"); 
// ... process parentEntity 

Entity childEntity = new Entity("Child"); 
childEntity.setProperty("parentEntity", parentEntity); 

回答

1

Entity不能被存储为另一种模式(valid property types)中的一处。

相反,在子实体上为每个属性创建一个属性,您需要在您的孩子中使用一个非正规化副本。

+0

我明白了。这对我来说仍然是一个大脑的扭曲,但我如何确保数据保持正常? – Mauro 2011-03-11 23:32:12

+0

您的意思是如何确保客户端实体中的非规格化值与父项中的值保持一致?只要您更改“Parent”实体,就需要确保更新您的denomralized值。 – 2011-03-11 23:56:58

+0

我明白了。非常感谢! – Mauro 2011-03-12 00:13:19

0

数据存储区API的当前版本不支持此功能,但G uido's NDB project支持嵌套实体。

相关问题