何时使用 POJO 定义 google appengine 中的实体?

When to use POJOs to define entities in google appengine?

我是 Google Appengine 的新手。在学习 Google 数据存储的基础知识时,我遇到了有关实体的概念,并看到了定义和存储它们的 2 种方法。

一种是使用带注解的POJO定义实体,在存储之前在Objectify中注册。

@Entity
Class Employee{
    @Id
    private long id;
    String firstName;
    String lastName;

    // add constructors and getters
}

另一种是只使用 Entity() 构造函数来定义实体,然后设置属性:

Entity employee = new Entity("Employee");
employee.setProperty("firstName", "Antonio");
employee.setProperty("lastName", "Salieri");

我的问题是在描述实体时应该使用哪种方式?

Objectify 减少了样板代码的数量并在后台做了很多有用的事情。

低级数据存储 API,您描述的第二个选项,需要更多样板文件,但如果您知道如何使用它,则可以提供更多控制和更好的性能。

选择取决于您更了解什么以及您计划实施的项目的详细信息。

低级别 API(您的第二个示例)允许您利用数据存储的 NonSQL 特性,因为对象并不真正存储在表中您可以拥有具有不同属性的相同类型的实体。如果你需要的话,这很好,但它真的让你自己实现他们的很多逻辑。

Objectify 在另一端(绝对推荐 JDO 和 JPA!)允许您轻松地将对象映射到数据存储实体并提供大部分 querying/marshalling 逻辑开箱即用。

My question is which way should be used when to describe entities?

这实际上取决于您的项目要求,但根据我的经验,99% 的情况下您可以从 objectify 获得所需的一切。它是专门为 GAE 和它的数据存储设计的,它的界面非常干净而且直截了当。如果您是 GAE 的新手,并且想轻松了解您应该使用 Objectify 的概念,您将把自己从痛苦的世界中拯救出来 :)