Pregunta

Soy nuevo en diseños de bases de datos orientadas a objetos y estoy tratando de comprender cómo debería ser la estructuración de mis clases de JDO para Google App Engine, particularmente relaciones uno a muchos.

Vamos a decir que estoy construyendo una estructura de unos grandes almacenes, donde hay muchos departamentos y cada departamento tiene muchos productos. Así que yo quiero tener una clase llamada Departamento, con una variable que es una lista de una clase de productos.

@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; 

}

Sin embargo, un producto puede estar en más de un departamento (como una batería podría estar en la electrónica y artículos de uso doméstico). Así que la siguiente pregunta es, ¿cómo no datos duplicados en el mundo OOD y tienen sólo una copia de los datos de productos en numerosos departamentos? Y la siguiente pregunta es, digamos elimino un producto en particular, ¿cómo cada uno de los departamentos saben que se ha eliminado?

¿Fue útil?

Solución

Es necesario añadir lo siguiente al miembro correspondiente de la clase Departamento. También, ver el apartado especial en el App Engine documentación .

@Persistent
@Element(dependent = "true")
private List<Product> products; 
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top