JDO architettura: uno a molti e la cancellazione a cascata
-
25-09-2019 - |
Domanda
Sono nuovo di disegni ad oggetti di database e sto cercando di capire come dovrei essere strutturare le mie lezioni in JDO per Google App Engine, in particolare uno a molti rapporti.
dire Let Sto costruendo una struttura per un grande magazzino dove ci sono molti reparti, e ogni dipartimento ha molti prodotti. Quindi vorrei avere una classe chiamata Dipartimento, con una variabile che è una lista di una classe del prodotto.
@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;
}
Ma un prodotto può essere in più di un Dipartimento (come una batteria potrebbe essere in elettronica e accessori per la casa). Così la prossima domanda è: come faccio a meno di dati duplicati nel mondo OOD e hanno una sola copia dei dati di prodotto in numerosi reparti? E la prossima domanda è, diciamo che elimino fuori un particolare prodotto, come si fa ciascuno dei dipartimenti sanno è stato eliminato?
Soluzione
È necessario aggiungere la seguente al membro rilevante della classe Department. Inoltre, vedere la sezione riguardo a questa in App Engine documentazione .
@Persistent
@Element(dependent = "true")
private List<Product> products;