J'ai un problème très étrange que nous utilisons jpa 2.0 avec des annotations d'hibernation basées Base de données générée par JPA DDL est vrai et MySQL comme base de données; Je vais fournir quelques classes de référence et ensuite mon problème.JPA 2.0 Fournisseur Hibernate
@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
}
comme dans le code que vous pouvez voir que les parents et les classes d'enfants étend la classe commune si les deux ont l'adresse propriété et id, le problème se produit lorsque le changement de la refference d'adresse en classe parent, il reflète même changement dans tous les objets enfant dans la liste et si refference adresse de changement de classe enfant puis fusionner va changer l'adresse refference des parents et
je ne suis pas en mesure de comprendre est qu'il est problème de JPA ou mise en veille prolongée
Il manque un peu d'informations de mappage ici. Essayez-vous de cartographier l'héritage ou vous juste ce que séparent table PARENT et tables enfant avec une structure similaire? Pouvez-vous inclure les annotations de niveau classe (@Entity etc) comme vous les avez. –
Suppression des références à Spring MVC, car ce n'est pas pertinent, et confond le problème. – skaffman
merci Davis oui j'ai oublié de placer ces annotations, en fait j'ai une table séparée pour parent et enfant avec des champs de la classe héritée commune. la chose que je n'arrive pas à comprendre c'est pourquoi elle change la référence de l'adresse enfant-> dans le parent. quand je viens de changer la référence de l'adresse pour le parent – Rooh