Lập bản đồ của bạn thực sự xác định hai quan hệ một chiều độc lập. Những gì bạn muốn là một trong relation.The hai chiều mã sau đây sẽ thiết lập mối quan hệ hai chiều
@OneToMany(cascade = CascadeType.ALL, mappedBy = "purchaseListId")
@JoinColumn(name="pl_id",referencedColumnName="id")
private List<PurchaseListItems> purchaseListItems;
Thuộc tính mappedBy là cần thiết vì không có cách nào cho nhà cung cấp để tự động xác định rằng các mối quan hệ cụ thể thực sự tạo thành một mối quan hệ duy nhất. Người ta có thể sử dụng kiểu Java của thành viên cá thể nhưng sau đó nếu bạn có nhiều thành viên cùng loại. Và có rất nhiều kịch bản mà bạn có hai quan hệ đơn lẻ. Ví dụ:
OneToMany: User -> ForumThread (các chủ đề được tạo ra bởi người sử dụng)
ManyToOne: ForumThread -> Người dùng (. Người sử dụng người đóng thread rõ ràng là không nhất thiết phải là một trong những người bắt đầu thread)
Đây là hai mối quan hệ độc lập và phải được xử lý như vậy. Bạn sẽ khá ngạc nhiên nếu sự kiên trì của bạn cung cấp một mối quan hệ hai chiều từ đó chỉ vì các loại và sự đa dạng phù hợp. Cũng lưu ý rằng quan hệ hai chiều không được quản lý tự động bởi bất kỳ nhà cung cấp JPA nào, có nghĩa là mặt nghịch đảo không được tự động cập nhật/thiết lập trong mô hình đối tượng của bạn và do đó không có trong db. Bạn phải tự mình làm điều đó. Nhân tiện, trong tất cả các dự án của tôi, các mối quan hệ hai chiều là một nỗi đau trong mông và tôi nghĩ rằng nên tránh chúng.
JPA không quản lý quan hệ hai chiều. Bạn phải tự thiết lập quan hệ nghịch đảo. Cũng lưu ý rằng ánh xạ của bạn xác định hai quan hệ đơn hướng độc lập. Xem giải thích của tôi dưới đây – bennidi