我是新的面向对象的数据库设计,我想知道我应该如何构造我的JDO类谷歌应用程序引擎,尤其是一对多的关系。

比方说,我建立一个结构百货公司那里有很多部门,每个部门都有很多的产品。所以我希望能有一个名为Department类,与一个变量,是产品类的列表。

@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世界不重复的数据,并有产品数据的只有一个副本在众多的部门?而接下来的问题是,比方说,我删除了一个特定的产品,怎么办各部门的认识已被删除?

有帮助吗?

解决方案

您需要将以下添加到Department类的相关成员。此外,请参阅部分中的应用程序引擎关于此文档

@Persistent
@Element(dependent = "true")
private List<Product> products; 
scroll top