使用Objectify从GAE Datastore实体中获取几列

时间:2014-03-15 15:28:00

标签: google-app-engine google-cloud-datastore objectify

我确实有一个像下面这样的实体,它有一个EmbedMap [实体详情在下面]

@Data
@Entity
public class Data
{
    @Id long id;
    @EmbedMap private Map<String, SubData> subData = Maps.newHashMap();
}

@Data
public class SubData
{
    private String data1;
    private String data2;
}

假设数据存储区实体存储了以下数据:

列:数据

id:1

subData.KEY1.data1:data1

subData.KEY1.data2:data2

subData.KEY2.data3:data3

subData.KEY2.data4:data4

所以,我想用前3个coulmns数据获取数据。使用Objectify?

表示id和subData映射只包含KEY1数据

有可能吗?

道歉 - 无法以正确的表格格式化数据。

1 个答案:

答案 0 :(得分:1)

您可以使用projection query检索整个实体,也可以只检索所需的属性。但是,它不适用于您的情况,因为您将所有数据存储在单个属性中。

您可以使用其键作为属性类,将每个值存储在其自己的属性中,而不是将Map存储在一个属性中。然后,您可以创建仅获取所需属性的投影查询。我非常肯定您可以通过这种方式重构数据模型。