Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.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 双向映射空值保留在子对象的父引用列中_Java_Spring_Hibernate_Spring Boot - Fatal编程技术网

Java 双向映射空值保留在子对象的父引用列中

Java 双向映射空值保留在子对象的父引用列中,java,spring,hibernate,spring-boot,Java,Spring,Hibernate,Spring Boot,母实体 雇主(家长) 来自邮递员的Json { "name" : "data", "empDetails":[{ "firstName" : "ttest", "lastName" : "te" }] } 我正在尝试在一个保存呼叫中保存,如。一旦父项被保存,子项将被自动持久化。但在执行此操作时,子列中的父引用将插入null。Spring不会在您的Employee实例中设置雇主值。您应该在控制器中手动设置它们: employer.g

母实体

雇主(家长)

来自邮递员的Json

{
    "name" : "data",
    "empDetails":[{
        "firstName" : "ttest",
        "lastName" : "te"
    }]
}
我正在尝试在一个保存呼叫中保存,如。一旦父项被保存,子项将被自动持久化。但在执行此操作时,子列中的父引用将插入null。

Spring不会在您的Employee实例中设置雇主值。您应该在控制器中手动设置它们:

    employer.getEmpDetails().forEach(e -> e.setEmployer(employer));
mappedBy=“雇主”


这里还有其他不必要的文本,所以我可以发布它。

您必须以某种方式引用子对象中的父对象,以便正确保留id的父对象

我想你有这样的想法:

Employer employer = new Employer("Employer");
Employee empX = new Employee("Employee 1", "My lastname")
employer.getEmpDetails().add(empX);
您可以扩展构造函数并设置父引用:

Employer employer = new Employer("Employer");
Employee empX = new Employee("Employee 1", "My lastname", employer)
employer.getEmpDetails().add(empX);

mappedBy=“雇主”这是一个打字错误。现在我更新了maybe,这就是为什么您要使用
mappedBy=“employee”
,但实际上应该是
mappedBy=“employer”
Employer employer = new Employer("Employer");
Employee empX = new Employee("Employee 1", "My lastname")
employer.getEmpDetails().add(empX);
Employer employer = new Employer("Employer");
Employee empX = new Employee("Employee 1", "My lastname", employer)
employer.getEmpDetails().add(empX);