Tôi có câu hỏi về ánh xạ Hibernate ManyToMany. Tôi có hai lớp A và B và các ánh xạ giữa họ là một ánh xạ ManyToMany giải quyết bằng Hibernate:Cách thêm Khóa chính riêng vào Bảng Tham gia trong Hibernate
@Entity
@Table(name="A")
public class A {
@Id
@GeneratedValue
private Long id;
@ManyToMany
@JoinTable(name="C", [email protected](name="a_id"), [email protected](name="b_id"))
private Set bs;
}
@Entity
@Table(name="B")
public class B {
@Id
@GeneratedValue
private Long id;
@ManyToMany(mappedBy="bs")
private Set bs;
}
Như bạn có thể thấy, Tham Bảng I sử dụng là C. Các phím nước ngoài đến A và B là "a_id "và" b_id ". Hiểu biết của tôi là, Hibernate tạo Khóa chính được tạo bằng a_id và b_id cho bảng C.
Tôi không muốn có một thực thể C trong mô hình của mình. Nhưng thay vì khóa chính được soạn thảo trên bảng C, tôi muốn có một ID được tạo và ràng buộc duy nhất trên các trường a_id và b_id.
Có thể bảo Hibernate sử dụng khóa chính riêng biệt không? Mà không cần thêm một thực thể C?
Tôi sẽ đánh giá cao bất kỳ trợ giúp nào.
Cảm ơn rất nhiều!
Điểm là cơ sở dữ liệu đã tồn tại với cấu trúc đã cho (và vì lý do kế thừa nó không thực sự thích ứng). Bảng không có gì hơn ba lĩnh vực tôi đã viết về (id, a_id, b_id). Nó sẽ là tốt đẹp để chèn các mục mới trong C mà không tạo ra một thực thể C (vô dụng) trong mã của tôi. Nhưng nhờ dù sao cho câu trả lời. Tôi đoán tôi chỉ cần tạo ra thực thể này sau đó ... – BHulliger
@BHulliger xem cập nhật của tôi – Bozho