The mapping is wrong. Check out my <a href=”https://vladmihalcea.com/books/high-performance-java-persistence/”>High-Performance Java Persistence book</a> for a detailed explanation about how you should map this association to get the most out of your data access layer. 繼續閱讀
Hi Vlad, thanks for your blogs on JPA and Hibernate.
In my codebase, I found a <code>Student</code> and <code>Course</code> entity classes with the below relationships.
The <code>Student</code> Entity:
@OneToMany(cascade = CascadeType.ALL,
fetch = FetchType.LAZY,
mappedBy = “student”)
private List courseList = new ArrayList<>();
And the <code>Course</code> entity:
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = “STUDENT_ID”, nullable = false)
private Student student;
I thought in the <code>Course</code> entity, the inverse annotation would be a <code>@ManyToOne</code> but I found a <code>@OneToOne</code>. Is this possible given your statement in one of your article:
“The bidirectional association requires the child entity mapping to provide a @ManyToOne annotation, which is responsible for controlling the association.”