我正在使用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中,如何使用JobDetail列表从JOBREPORT获取相应的NOTES。我正在使用ng-repeat从JobDetail中获取详细信息。我可以从JObDetail获取项目列表,但不能从JobReport列表中获取相应的注释。
请帮助
答案 0 :(得分:0)
这应该有效:
<强>的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;
}
<强> JobReport 强>
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,但如果你不想要,你不需要在实体模型中声明它。
请注意,我已将注释从字段更改为getter。
答案 1 :(得分:0)
通过以下方法工作。这适用于正在寻找解决方案的人
这是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;
我在字段上有映射