春天的休眠关系

时间:2015-12-24 07:30:44

标签: angularjs spring hibernate

我正在使用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列表中获取相应的注释。

请帮助

2 个答案:

答案 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;

我在字段上有映射