0

次の図に基づいて、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

これはどのように発生し、どうすれば解決できますか?

4

1 に答える 1

0

結合されたテーブルで参照されている列がすでに主キーである限り、注釈のreferencedColumnName属性を指定する必要はないようです。@JoinColumn

于 2013-10-04T10:11:36.100 に答える