JPA 2.0 Provider Hibernate

У меня очень странная проблема: мы используем jpa 2.0 с аннотациями гибернации на основе База данных, сгенерированная с помощью JPA DDL, верна, а MySQL - как база данных;

я предоставлю несколько ссылочных классов, а затем свою задачу.

@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

}

как в коде, вы можете видеть, что родительский и дочерний классы расширяют общий класс, поэтому оба имеют свойство адреса и идентификатор , проблема возникает при изменении ссылки на адрес в родительском классе, она отражает такое же изменение во всех дочерних объектах в списке, и если изменить ссылку на адрес в дочернем классе, то при слиянии она также изменит ссылку на адрес родительского класса

Я не могу выяснить, это проблема jpa или спящего режима

6
задан Sean Patrick Floyd 2 January 2011 в 12:42
поделиться