我是面向对象数据库设计的新手,我正在尝试理解如何在JDO for google应用引擎中构建我的类,特别是一对多的关系。
假设我正在建立一个百货商店的结构,那里有很多部门,每个部门都有很多产品。所以我想要一个名为Department的类,其变量是Product类的列表。
@PersistenceCapable
public class Department {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private String deptID;
@Persistent
private String departmentName;
@Persistent
private List<Product> products;
}
@PersistenceCapable
public class Product {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private String productID;
@Persistent
private String productName;
}
但是一个产品可以在多个部门(就像电池可以用于电子产品和家用电器)。那么下一个问题是,我如何不在OOD世界中复制数据,并且在众多部门中只有一份产品数据?接下来的问题是,假设我删除了一个特定的产品,每个部门如何知道它已被删除?
答案 0 :(得分:2)
您需要将以下内容添加到Department类的相关成员中。另请参阅App Engine documentation中有关此内容的部分。
@Persistent
@Element(dependent = "true")
private List<Product> products;