我建立了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的空值。