gpt4 book ai didi

java - Objectify 找不到似乎存在的实体

转载 作者:行者123 更新时间:2023-12-01 12:10:08 24 4
gpt4 key购买 nike

我在 Google App Engine 上使用 Objectify 5.1.1。我定义了一个名为 Insight 的 Objectify 实体,并尝试通过名为 Downloaded 的 boolean 属性来查询它。但是,Objectify 找不到该实体。

这是我尝试执行查询的方式:

Query<Insight> insightQueryTemplate = ofy().load().type(Insight.class).
filter("downloaded", false).first().safe();

这是 Insight 的精简类定义:

@com.googlecode.objectify.annotation.Entity
public class Insight {
@com.googlecode.objectify.annotation.Id
public Long id;

public boolean downloaded = false;

public Insight () { }

}

当我查看开发服务器的数据存储区时,我可以看到该实体确实存在,但 downloaded 属性显示“false(未索引)”而不是简单的“false”。

我很确定这曾经适用于 Objectify 3.1 那么我做错了什么?

最佳答案

我认为标签@com.googlecode.objectify.annotation.Index需要在类上进行注释,如下所示:

@com.googlecode.objectify.annotation.Entity
public class Insight {
@com.googlecode.objectify.annotation.Id
public Long id;

@com.googlecode.objectify.annotation.Index // *** This was missing ***
public boolean downloaded = false;

public Insight () { }

}

根据https://cloud.google.com/appengine/docs/java/datastore/indexes#Java_Unindexed_properties ,属性可以使用 setProperty()setUnindexedProperty() 设置。但目前documentation for Objectify表示属性默认设置为未索引。

因此,我使用 @com.googlecode.objectify.annotation.Index 注释了我的类,问题得到了解决。

关于java - Objectify 找不到似乎存在的实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27326754/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com