我正在使用 GAE 开发一个 RESTfull 网络服务。我的技术栈主要集中在 Jersey、Spring 和 Objectify。
如果您不知道 Objectify 是...
“Objectify 是专为 Google App Engine 数据存储设计的 Java 数据访问 API。它占据了“中间地带”;比 JDO 或 JPA 更容易使用和更透明,但比低级 API 更方便。Objectify 旨在让新手立即高效工作,同时充分展示 GAE 数据存储的全部功能。”</p>
https://code.google.com/p/objectify-appengine/
到目前为止,我已经使用 Objectify Keys 在我的模型中存储关系。像这样 ...
public class MyModel {
@Id private Long id;
private Key<MyOtherModel>> myOtherModel;
...
与 Long ID 相比,Objectify 键提供了额外的功能,但它们可以从 Long ID 和 MyOtherModel.class 使用静态方法 Key.create(...) 创建,
Key.create(MyOtherModel.class, id)
所以我不必在模型级别将关系存储为 Objectify 键,我只是认为它更一致。
问题是当我将模型对象序列化为 JSON 并将它们从 JSON 反序列化为 Java 对象时,我需要编写大量额外的代码来创建 XML 适配器以将 Objectify 键转换为长 ID。
当我需要时,我正在考虑使用 Long ID 并在 DAO 中创建一个 Objectify Key。此外,这将从不是 DAO 的任何内容中删除任何 Objectify 特定代码。
我想从更有经验的程序员那里获得一些观点。我从来没有创建过这么大的软件,几千行代码。
非常感谢大家。