Я создаю приложение с помощью Spring Hibernate + ANgularJS. У меня есть класс модели JobDetail и другая модель JobReport. JobReport будет содержать одну или несколько ссылок JobDetail. Вот таблица JobDetail

JOB_ID 
NAME
CITY
JOB_NAME

Вот таблица JobReport

REPORT_ID
NOTES
USER_NAME
JOB_ID

JobReport может содержать одну или несколько заметок для одного JobDetail

Я попробовал следующее, обратившись к документации в Интернете. Я определил отношение «один ко многим» в JobDetail, как показано ниже.

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="JOB_ID")
private int id;

@OneToMany(mappedBy="jobnotes")
private List<JobReport> jobReport = new ArrayList<>();

public List<JobReport> getJobReport() {
    return jobReport;
}

public void setJobReport(List<JobReport> jobReport) {
    this.jobReport = jobReport;
}

Я определил отношение "многие к одному" в JobReport, как показано ниже:

@ManyToOne
@JoinColumn(name="JOB_ID")
private JobDetail jobnotes;

public JobDetail getJobnotes() {
    return jobnotes;
}

public void setJobnotes(JobDetail jobnotes) {
    this.jobnotes = jobnotes;
}

Это правильно или я что-то упускаю? В Angular, как я могу получить соответствующие ЗАМЕЧАНИЯ из JOBREPORT, используя список JobDetail. Я использую ng-repeat для получения деталей из JobDetail. Я могу получить список элементов из JObDetail, но не соответствующие примечания из списка JobReport.

Любая помощь, пожалуйста

0
CrazyMac 24 Дек 2015 в 10:30

2 ответа

Лучший ответ

Это работало по подходу, описанному ниже. Это для тех, кто ищет решение

Вот класс JOBDETAIL

    @OneToMany(mappedBy="jobnotes", fetch = FetchType.EAGER)
private List<JobReport> jobReport = new ArrayList<>();

Вот класс JOBREPORT

    @ManyToOne
@JoinColumn(name="JOB_ID", referencedColumnName = "JOB_ID", insertable=false, updatable=false)
private JobDetail jobnotes;

У меня была карта на полях

0
CrazyMac 28 Дек 2015 в 04:30

Это должно работать:

JobDetail

private int id;

private List<JobReport> jobReport = new ArrayList<>();

@OneToMany(mappedBy="jobnotes", fetch = FetchType.EAGER)
public List<JobReport> getJobReport() {
    return jobReport;
}

public void setJobReport(List<JobReport> jobReport) {
    this.jobReport = jobReport;
}

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="JOB_ID")
public int getId(){
    return id;
}

Отчет о вакансии

private JobDetail jobnotes;

@ManyToOne
@JoinColumn(name="JOB_ID", referencedColumnName = "JOB_ID")
public JobDetail getJobnotes() {
    return jobnotes;
}

public void setJobnotes(JobDetail jobnotes) {
    this.jobnotes = jobnotes;
}

Таблица JOB_REPORT должна иметь столбец JOB_ID, но вам не нужно объявлять его в модели сущности , если вы этого не хотите.

Обратите внимание, что я заменил аннотации полями на геттеры.

0
Héctor 24 Дек 2015 в 10:36