Tôi đang gặp một số vấn đề khi nhận được liên kết hai chiều hai chiều hoạt động với JoinTables. Đây là những gì tôi nhận:hai chiều một chiều có thể nối với nhau
Class A:
@OneToMany
@JoinTable(name="join_table",
JoinColumns={@JoinColumn(name="a_id")},
inverseJoinColumns={@JoinColumn(name="b_id")}
)
@Cascade(org.hibernate.annotations.CascadeType.ALL)
public Set<B> getBs() {
return bs;
}
Class B:
@ManyToOne
@JoinTable(name="join_table",
joinColumns={@JoinColumn(name="b_id", insertable=false,updatable=false)},
inverseJoinColumns={@JoinColumn(name="a_id", insertable=false,updatable=false)})
public A getA() {
return a;
}
Nếu tôi tạo ra một thể hiện của A và B, thêm trường hợp của B đến A và lưu lại. Nó hoạt động. Nhưng khi tôi tải lại thể hiện của A và thử truy cập tập hợp các Bs nó ném một LazyInitializationError với thông báo "truy cập bất hợp pháp để tải bộ sưu tập".
Tôi sẽ làm gì sai ở đây? :) Ai có thể chỉ cho tôi một ví dụ về hiệp hội hai chiều sử dụng bảng kết hợp. Và nơi mà quyền sở hữu được giữ cho lớp A, tôi đã tìm kiếm mặc dù tài liệu ở hibernate.org nhưng tôi không thể tìm thấy nó.
-Daniel
Tại sao bạn sử dụng bảng nối khác trong thực thể có nguồn gốc của bạn (B)? – Perception
xin lỗi, tôi đã cập nhật câu hỏi. Lý do là tôi đã sửa đổi hai lớp thực tế cho ví dụ (đổi tên thành A và B về cơ bản :)) – JustDanyul
Ok. Vui lòng thêm lỗi bạn đang gặp phải vào câu hỏi. – Perception