保存父实体时,为什么所有者侧有null(反侧主键)?

时间:2019-01-29 06:42:57

标签: java hibernate jpa entity

我建立了Bi关系实体。

我试图通过JPA保存方法保存父实体。

但是在将子表的父ID插入空数据时出现问题。

我不知道为什么要插入空数据。

在保存父实体之前,有子数据。

因此,仅插入过程就没有问题。

仅没有插入的父id(主键)数据。

Parent Entity (Inverse side)

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "oid")
private Long oid;
private String username;
private int status;
@OneToMany(targetEntity = Children.class, casacade = CasacdeType.ALL, mappedBy = "parent")
private List<Children> children;
...(getter, setter)



Children Entity (Owner side)
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String foodname;
@Column(name = "parent_oid")
private Long oid;
@ManyToOne(targetEntity = Parent.class)
@JoinColumn(name = "parent_oid", referencedColumnName = "oid")
private Parent parent;
...(getter, setter)




AJAX (JavaScript)
var data = {"username":"mike", "status":"1"};
data.children = [{"foodname":"A"}, {"foodname":"B"}];
$ajax({
    url : '/a',
    type : 'POST',
    contentType : 'application/json; charset=utf-8'
    dataType : 'json'
    data : JSON.stringif(data)
});



@Controller
public HashMap<String, Object> getting(@RequestBody Parent parentEntity) {
    parentService.saveEntity(parentEntity);
}


@Service
public void saveEntity(Parent parentEntity) {

    parentRepository.save(parentEntity);
}



Result

Parent Table
---------------------------------
oid    | username    | status
1    | mike    | 1


Children Table
---------------------------------
id    | foodname    | oid
1    | A     | null
2    | B     | null

我不知道为什么oid列不为Children Table的空值。

0 个答案:

没有答案