我有一个现有的数据存储实体,如下所示:
@Data
@Entity
public class Data
{
@Id @Index long id;
boolean expired;
}
我需要根据
期满
字段,因此我必须更改实体,使该字段现在已过期。修改后的实体如下:
@Data
@Entity
public class Data
{
@Id @Index long id;
@Index boolean expired;
}
以下是创建索引之前数据存储中的现有数据:
列:数据
编号:1
过期:true
编号:2
过期:false
编号:3
过期:false
我的意图是使用objectify获取数据,并在过期时使用过滤器,因此我修改了代码以使用以下objectify查询:
return (List<Data>) ofy.load().type( Data.class ).filter( "expired = ", false ).list();
它应该返回两条记录,但它没有返回任何内容。
顺便说一下,在创建索引后,我向实体中添加了一条新记录,如下所示
编号:4
过期:false
如果我返回查询,我现在看到一个结果,那就是id=4。过滤器似乎只适用于新添加的记录,索引力适用于所有旧记录?如何解决这个问题?