Ho un problema molto strano stiamo usando jpa 2.0 con le annotazioni di ibernazione basate Il database generato tramite JPA DDL è true e MySQL come Database;JPA 2.0 Provider Hibernate
fornirò alcune classi di riferimento e quindi il mio simbolo.
@MappedSuperclass
public abstract class Common implements serializable{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", updatable = false)
private Long id;
@ManyToOne
@JoinColumn
private Address address;
//with all getter and setters
//as well equal and hashCode
}
@Entity
public class Parent extends Common{
private String name;
@OneToMany(cascade = {CascadeType.MERGE,CascadeType.PERSIST}, mappedBy = "parent")
private List<Child> child;
//setters and rest of class
}
@Entity
public class Child extends Common{
//some properties with getter/setters
}
@Entity
public class Address implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", updatable = false)
private Long id;
private String street;
//rest of class with get/setter
}
come nel codice si può vedere che i genitori e le classi bambino estende la classe comune in modo entrambi hanno proprietà indirizzo e l'ID, il problema si verifica quando il cambiamento del refference indirizzo in classe genitore riflettono stesso cambiamento di tutti gli oggetti figlio in lista e se l'indirizzo del cambiamento refference in classe figlia poi unire cambierà indirizzo refference del genitore così
io non sono in grado di capire è che è problema di APP o sospensione
C'è un po 'di informazioni sulla mappatura mancante qui. Stai tentando di mappare l'ereditarietà o hai solo ciò che separa la tabella PARENT e le tabelle CHILD con struttura simile? Puoi includere le annotazioni a livello di classe (@Entity ecc.) Come le hai. –
Rimossi i riferimenti a Spring MVC, poiché non è rilevante e confonde il problema. – skaffman
grazie Davis sì, ho dimenticato di mettere queste annotazioni, in realtà sto avendo una tabella separata per genitore e figlio con i campi della classe ereditata comune. la cosa che non riesco a capire è perché cambia il riferimento di child-> address in parent. quando cambio semplicemente il riferimento dell'indirizzo per il genitore – Rooh