我想保存一个实体,似乎正在下降,因为我试图索引一个HashMap,它有一个列表。
以下是我的类。
**IndicadorEntity **
@Entity
public final class IndicadorEntity {
private @Index Map<String, List<ObjetivoEntity>> objetivos;
}
ObjetivoEntity
包 com.eulen.google.efqm.datastore.实体。
导入java.util.Date.Date。
public final class ObjetivoEntity {
private double objetivo;
private boolean variable;
private Date fechaCreacion;
}
当试图保存 IndicadorEntity 我得到以下错误。
com.googlecode.objectify.SaveException: Error saving com.eulen.google.efqm.datastore.entities.IndicadorEntity@694e7f0b: objetivos.2: java.util.ArrayList is not a supported property type.
如果我删除了@Index,它就会工作,但我需要知道哪一个是 IndicadorEntity 有空的objetivos。
谢谢。
数据存储的索引是有限制的。然而,你几乎总是可以通过创建一个合成索引来解决这个问题。
例如,你可以将一个字段 private List<String> myCustomIndex
并在其中填充一个 onSave
方法,将所有你希望能够搜索到的东西填入其中。你可以从对象层次结构中任何深度的对象中提取信息。
然后在你的自定义索引上进行查询。filter("myCustomIndex", somevalue)