我使用NetBeans(EclipseLink JPA)基于下图生成实体:
相关的生成代码是:
Course
@JoinTable(name = "course_software", joinColumns = {
@JoinColumn(name = "course_id", referencedColumnName = "id", nullable = false)}, inverseJoinColumns = {
@JoinColumn(name = "software_id", referencedColumnName = "id", nullable = false)})
@ManyToMany
private List<Software> softwareList;
Software
@ManyToMany(mappedBy = "softwareList")
private List<Course> courseList;
问题在于Course
实体。当我尝试坚持如下时
getFacade().create(currentCourse);
currentCourse.setSoftwareList(selectedSoftware);
然后在course
中创建记录,但在course_software
联接表中没有创建任何内容。
这是如何引起的?如何解决?
答案 0 :(得分:0)
只要连接表中引用的列已经是主键,您似乎不需要指定referencedColumnName
注释的@JoinColumn
属性。