【发布时间】:2020-07-31 11:56:09
【问题描述】:
当我有双向关系时,我无法用 json 文件填充实体。
父类:
@Entity
@Table(name = ".....")
public class CpoPipeline implements... {
private String pipelineId;
private String pipelineSource;
private String pipelineVersion;
private Set<CpoPipelineParameter> cpoPipelineParameters;
@OneToMany(fetch = FetchType.EAGER, mappedBy = "cpoPipeline")
public Set<CpoPipelineParameter> getCpoPipelineParameters() {
return this.cpoPipelineParameters;
}
儿童班:
@Entity
@Table(name = ".....")
public class CpoPipelineParameter implements ...{
private String pipelineParameterId;
private CpoPipeline cpoPipeline;
private String pipelineParameterName;
private String pipelineParameterValue;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "pipeline_id", nullable = false)
@JsonIgnore
public CpoPipeline getCpoPipeline() {
return this.cpoPipeline;
}
Json:
{
"cpoPipeline": {
"pipelineId": "1",
"pipelineSource": "C://",
"pipelineVersion": "2.0",
"cpoPipelineParameters": [
{
"pipelineParameterId": "2",
"pipelineParameterName": "Process_Group_Variable_Year",
"pipelineParameterValue": "2020"
},
{
"pipelineParameterId": "1",
"pipelineParameterName": "Process_Group_Variable_Directory",
"pipelineParameterValue": "C://"
}
]
}
}
当我尝试使用 json 文件填充实体时,父 ID 不会进入子实体。
所以当我尝试坚持时,我得到了错误:
17:26:54.714 [main] 错误 o.h.e.jdbc.spi.SqlExceptionHelper - “PIPELINE_ID”列不允许为 NULL;
SQL语句:插入cpo_pipeline_parameter(pipeline_id, pipeline_parameter_name, pipeline_parameter_value, pipeline_parameter_id)值(?, ?, ?, ?)
【问题讨论】:
-
缺少
CascadeType.ALL
标签: java json spring-boot spring-data-jpa jackson