我正在尝试通过 App Engine 创建一个简单的待办事项 API 服务。我有User
具有一组数据对象的Project
数据对象,而这些Project
数据对象具有一组Task
对象。下面的代码应该让您对它们的实现和关系有所了解。
@PersistenceCapable(detachable = "true")
public class User implements Serializable {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long id;
@Persistent(mappedBy = "user")
private List<Project> projects;
}
@PersistenceCapable(detachable = "true")
public class Project implements Serializable {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key id;
@Persistent
private User user;
@Persistent(mappedBy = "project")
private List<Task> tasks;
}
@PersistenceCapable(detachable = "true")
public class Task implements Serializable {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key id;
@Persistent
private Project project;
}
我对用户数据对象所做的事情如下(EntityManager
定义如 App Engine 帮助页面上所示):
EntityManager em = EMFService.get().createEntityManager();
try {
User dev = em.find(User.class, id);
em.remove(dev);
} finally {
em.close();
}
我想要做的是通过它们的 id/Key 获取Project
和Task
数据对象,这是一些长的数字,对应于数据对象,而不是与其父对象的键组合,也指对象。由于这些对象是其他对象的子对象,我无法弄清楚如何通过它们的 id 值来获取它们。