java - 无法使用 objectify 从数据存储中获取对象

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

我正在开发一个简单的费用管理器,它将部署在 google appengine 上。我使用 objectify 作为 Appengine ORM。现在的问题是我无法从数据存储中获取简单的对象。这里的Session始终为空!但是当我在本地主机数据存储中检查它时,我可以看到它就在那里!

@Override
public String findEmailBySessionId(String sid) {
    Session session = datastore.load().type(Session.class).id(sid).now();
    if (session != null && (session.getDate().after(new Date()) || session.isToBeRemembered())) {
        return session.getEmail();
    }   // this is always null !
    return null;  
} 
<小时/>
@Entity
public class Session {


    private String email;

    @Id
    private String sessionId;

    private Date date;

    private boolean toBeRemembered;

    @Parent
    private Key<User> parent;
......... 
} 
<小时/>
@Entity
public class User {

    @Id
    private String email;

    private String name;
    private String password;
    private Date dateOfBirth;
    private String hashSalt;

    public User() {
    }

最佳答案

好吧,我已经得到答案了,但它很愚蠢。其实这是非常愚蠢的。

在谷歌文档中有一个查询限制:

*对未索引的属性进行过滤不会返回任何结果!!!! * link 为了让 objectify 索引一个属性,该属性应该使用 @Index 注释进行注释。 在上面的代码中,我忘记在 date 上添加 @Index 注释!这就是问题所在。当我把注释放回去后,一切都恢复正常。

关于java - 无法使用 objectify 从数据存储中获取对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21589897/

相关文章:

java - 如何按实例计算方法调用

java - 将子类的 ArrayList 复制到父类(super class)的 ArrayList

java - JAXB 中的 XML 字符串

python - 如何定义分割给定 url 的方法(在 Google 应用程序引擎的 python webapp2 中)

java - 嵌入实体的自动ID

java - 在理解 swing 代码方面需要帮助

java - 如何使用 Google Cloud Storage 服务在本地运行 Junits

google-app-engine - 谷歌应用引擎 : import export blobstore

dart - 使用JWT和dart连接到Google数据存储

google-app-engine - 实体集团如何助力交易?