Ваше отображение фактически определяет два независимых однонаправленных отношения. То, что вы хотите, это один двунаправленный relation.The следующий код будет установить двунаправленную связь
@OneToMany(cascade = CascadeType.ALL, mappedBy = "purchaseListId")
@JoinColumn(name="pl_id",referencedColumnName="id")
private List<PurchaseListItems> purchaseListItems;
Атрибут mappedBy необходимо, так как нет никакого способа для поставщика, чтобы определить, что указанные отношения фактически образуют единое отношение. Можно использовать Java-тип члена экземпляра, но тогда, если у вас несколько членов одного типа. И есть много сценариев, где у вас есть два отдельных отношения. Пример:
OneToMany: Пользователь -> ForumThread (нити, созданные пользователем)
ManyToOne: ForumThread -> User (. Пользователь, который закрыл нить, очевидно, не обязательно тот, кто начал нить)
Это два независимых отношения и должны рассматриваться как таковые. Вы были бы удивлены, если бы ваша настойчивость обеспечила просто двунаправленное отношение из этого только потому, что типы и множественность совпадали.
Также обратите внимание, что двунаправленные отношения автоматически не управляются каким-либо поставщиком JPA, а это означает, что обратная сторона автоматически не обновляется/не устанавливается в вашей объектной модели и, следовательно, не находится в db. Вы должны сделать это сами. Кстати, во всех моих проектах двунаправленные отношения были болью в заднице, и я думаю, что желательно избегать их.
JPA не управляет двунаправленными отношениями. Вы должны установить обратное отношение самостоятельно. Также обратите внимание, что ваши отображения определяют два независимых однонаправленных отношения. Смотрите мое объяснение ниже – bennidi