我确实有一个像下面这样的实体,它有一个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数据有可能吗?
道歉 - 无法以正确的表格格式化数据。
答案 0 :(得分:1)
您可以使用projection query检索整个实体,也可以只检索所需的属性。但是,它不适用于您的情况,因为您将所有数据存储在单个属性中。
您可以使用其键作为属性类,将每个值存储在其自己的属性中,而不是将Map存储在一个属性中。然后,您可以创建仅获取所需属性的投影查询。我非常肯定您可以通过这种方式重构数据模型。