3

我是面向对象数据库设计的新手,我试图了解我应该如何在 JDO 中为谷歌应用程序引擎构建我的类,特别是一对多关系。

假设我正在为一家百货公司构建一个结构,其中有很多部门,每个部门都有很多产品。所以我想要一个名为 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世界中不重复数据,在众多部门中只有一份产品数据?接下来的问题是,假设我删除了一个特定的产品,每个部门如何知道它被删除了?

4

1 回答 1

2

您需要将以下内容添加到 Department 类的相关成员中。此外,请参阅 App Engine文档中的相关部分。

@Persistent
@Element(dependent = "true")
private List<Product> products; 
于 2010-06-09T00:12:21.540 回答