[英]Changing a OneToMany Bidirectional Relationship to ManyToMany Bidirectional
我想將 courseDetails 上的以下映射轉換為 manyToMany。 這是因為我得到一個異常Found shared references to a collection: com.xyz.courseDetails我假設發生這種情況是因為數據庫中的關系實際上不是一對多的,因為有一些 course_detail 元組有多個課程。
@Entity
@Table(name = "courses")
public class Course
{
@Column(name = "course_detail_id")
private Long extendedCourseDetailId;
...
@OneToMany(fetch = FetchType.LAZY, targetEntity = CourseDetail.class, cascade = CascadeType.ALL)
@JoinColumn(name="id", referencedColumnName="course_detail_id")
private List<CourseDetail> courseDetails = new ArrayList<>();
}
簡單地將注釋更改為 ManyToMany 不起作用,JPA 不知何故找不到相關列。 為什么? 我怎樣才能做到這一點?
你覺得這怎么樣:
public class CourseDetail
{
@Id
@Column(name = "cd_id")
private Long courseDetailId;
@Entity
@Table(name = "courses")
public class Course
{
@Id
@Column(name = "c_id")
private Long courseId;
// @Column(name = "course_detail_id") // I comment because I dont understand the purpose
// private Long extendedCourseDetailId;
...
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "course__course_detail",
joinColumns = @JoinColumn(name = "course_id", referencedColumnName="c_id"),
inverseJoinColumns = @JoinColumn(name = "coursedetail_id", referencedColumnName="cd_id"),
)
private List<CourseDetail> courseDetails = new ArrayList<>();
}
PS:未測試隨時在評論中告訴我更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.