gpt4 book ai didi

java - 一对多和多对一映射在数据库列中显示为空

转载 作者:行者123 更新时间:2023-11-29 02:48:13 24 4
gpt4 key购买 nike

我正在编写一个 Web 应用程序,我从客户端获取格式为 JSON 的对象:

var applicationForm = {
projectTitle: "",
applicantRow: [{
nameApplicant: "",
emailApplicant: "",
departmentApplicant: ""
}],
experimentRow: [{
lightOn: "",
tempDay: "",
....
}],
startdate: "",
enddate: ""
....
}

现在我想将其存储在 3 个表中,即 Application、applicant、experimentalconditions,其中 applicationId 将作为 applicant 和 experimentalconditions 表中的外键。

@Entity
public class Application {
private long application_id;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public long getApplication_id() {
return application_id;
}
...
private List<ExperimentalConditions> experimentRow;
@OneToMany(targetEntity=ExperimentalConditions.class,mappedBy="application",
cascade=CascadeType.ALL,fetch=FetchType.EAGER)
public List<ExperimentalConditions> getExperimentRow() {
return experimentRow;
}
...

ExperminetalCondition 类:

@Entity
public class ExperimentalConditions {
private long experimental_id;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public long getExperimental_id() {
return experimental_id;
}
...(getter,setters for other variables)

private Application application;
@ManyToOne
@JoinColumn(name = "applicationid")
public Application getApplication() {
return application;
}
...(getter setters)

与申请人表相同的设置在我的 applicationDAO 类中,我将这个应用程序对象保存在表中,然后它本身应该将它保存在 3 个不同的表中。

应用DAO:

 public void save(Application applicationData){
getSession().save(applicationData);
}

这是我的 Controller 类,我在其中调用此保存方法。

@RequestMapping(value="/submitApp",method=RequestMethod.POST)
public Application sumitApp(@RequestBody Application app ){
try{
applicationDAO.save(app);
}

这在所有 3 个表中都保存了 for applicationForm 的数据,但 applicant 和 experimentalconditions 表中的 application_id(外键)显示为 null。因此,如果我想取回数据,我无法检索它。请告诉我哪里错了。

最佳答案

根据您的关系所有者配置,您需要从 json 字符串中获取 ExperimentalConditions 对象并在保存主应用程序数据之前写入此行

applicationData.getExperimentRow().setApplicaiton(applicationData);

对你的其他关系表(申请人)也重复同样的事情

关于java - 一对多和多对一映射在数据库列中显示为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39266704/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com