Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 一对多和多对一映射在数据库列中显示null_Java_Mysql_Spring_Hibernate - Fatal编程技术网

Java 一对多和多对一映射在数据库列中显示null

Java 一对多和多对一映射在数据库列中显示null,java,mysql,spring,hibernate,Java,Mysql,Spring,Hibernate,我正在编写一个web应用程序,其中我从以下格式的客户端获取一个JSON对象: var applicationForm = { projectTitle: "", applicantRow: [{ nameApplicant: "", emailApplicant: "", departmentApplicant: "" }],

我正在编写一个web应用程序,其中我从以下格式的客户端获取一个JSON对象:

var applicationForm = {
            projectTitle: "",
            applicantRow: [{
                nameApplicant: "",
                emailApplicant: "",
                departmentApplicant: ""
            }],
            experimentRow: [{
                lightOn: "",
                tempDay: "",
                ....
            }],
            startdate: "",
            enddate: ""
            ....
    }
现在我想将其存储在3个表中,即Application、applicator、experimentalconditions,其中applicationId将充当applicator和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;
   }
...
申请表的设置相同 在我的applicationDAO类中,我将这个应用程序对象保存在表中,然后表本身将它保存在3个不同的表中

申请日期:

 public void save(Application applicationData){
     getSession().save(applicationData);
 }
这是我调用这个save方法的控制器类

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

这将在所有3个表中为applicationForm保存数据,但application_id(外键)在申请人和实验条件表中显示为null。因此,如果我想取回数据,我无法检索它。请告诉我哪里错了。

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

applicationData.getExperimentRow().setApplicaiton(applicationData);

对您的另一个关系表(申请人)也重复同样的操作

通过看到json,我觉得您的设计是可行的。应用程序类应该包含另外两个类。你能详细说明一下为什么我的设计是错误的吗?我不太明白你的意思。
applicationData.getExperimentRow().setApplicaiton(applicationData);