Архитектура JDO: отношения один ко многим и каскадное удаление - PullRequest
3 голосов
/ 09 июня 2010

Я новичок в объектно-ориентированном проектировании баз данных, и я пытаюсь понять, как мне следует структурировать свои классы в JDO для движка приложений 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 и иметь только одну копию данных о продуктах во многих отделах?И следующий вопрос, скажем, я удаляю конкретный продукт, откуда каждый отдел знает, что он был удален?

1 Ответ

2 голосов
/ 09 июня 2010

Вам необходимо добавить следующее к соответствующему члену класса Департамента. Также см. Раздел об этом в документации по App Engine .

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