Tôi có vấn đề rất lạ chúng tôi đang sử dụng jpa 2.0 với chú thích ngủ đông dựa trên cơ sở dữ liệu được tạo ra thông qua JPA DDL là đúng và MySQL làm Cơ sở dữ liệu;Nhà cung cấp JPA 2.0 Hibernate
tôi sẽ cung cấp một số lớp tham chiếu và sau đó là biểu trưng của tôi.
@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
}
như trong mã bạn có thể thấy rằng các bậc cha mẹ và các lớp con mở rộng lớp chung để cả hai đều có sở hữu địa chỉ và id, vấn đề xảy ra khi thay đổi các refference địa chỉ trong lớp cha nó phản ánh cùng một sự thay đổi trong tất cả các đối tượng trẻ em trong danh sách và nếu địa chỉ thay đổi refference trong lớp trẻ đó trở đi sáp nhập nó sẽ thay đổi địa chỉ refference của cha mẹ cũng
tôi không thể hình dung ra là nó là vấn đề của JPA hoặc ngủ đông
Có một chút thông tin bản đồ bị thiếu ở đây. Bạn đang cố gắng để bản đồ thừa kế hoặc làm bạn chỉ là những gì riêng biệt bảng PARENT và bảng con với cấu trúc tương tự? Bạn có thể bao gồm chú thích Cấp lớp (@Entity v.v.) khi bạn có chúng. –
Đã xóa các tham chiếu đến Spring MVC, vì nó không liên quan và gây nhầm lẫn vấn đề. – skaffman
cảm ơn Davis có tôi quên đặt các chú thích này, thực ra tôi đang có một bảng riêng cho cha mẹ và con với các trường từ lớp thừa kế chung. điều tôi không thể hiểu được là tại sao nó thay đổi tham chiếu của child-> address trong parent. khi tôi chỉ thay đổi tham chiếu địa chỉ cho phụ huynh – Rooh