Повторяющаяся запись с использованием однонаправленного отображения с использованием JoinTable - PullRequest
1 голос
/ 11 августа 2010

Я создал однонаправленную таблицу соединений JPA, очень внимательно следуя документации JPA (http://www.jpox.org/docs/1_2/jpa_orm/one_to_many_list.html).

Я мог бы без проблем вставить заявителя, А, со списком вакансий (JobOne, JobTwo). Однако, когда я пытался вставить другого заявителя B, с работой, уже занятой другим заявителем, например, список вакансий (JobOne), он выбросил исключение:


'Дублирующаяся запись' JobOne 'для ключа' jobId '

В документации написано The join table will NOT be given a primary key (so that duplicates can be stored), но не похоже, что они используют составной ключ (ApplicI, JobId) для таблицы соединения.

public class Applicant
{
    private long applicantId;
    private List<Job> jobList;

    @OneToMany(fetch=FetchType.EAGER, cascade=CascadeType.ALL)
 @JoinTable(name="applicant_job",
     joinColumns={@JoinColumn(name="applicantId")},
     inverseJoinColumns={@JoinColumn(name="jobId")})
 public List<Job> getJobList() {
  return jobList;
 }
     //getters, setters
}


public class Job
{
     private long jobId;
     //getters, setters
}
...