我正在启动一个Web应用程序,我有以下结构:
+--------------------------+
| Company |
|--------------------------|
| id PK, NN, AI |
| attibute1 |
| attribute2 |
+--------------------------+
+--------------------------+
| CompanyProfile |
|--------------------------|
| id PK, NN, AI |
| id_company FK, NN |
| attribute3 |
| attribute4 |
| attribute5 |
+--------------------------+
public class Company {
@Id
@GeneratedValue
@Column(unique = true, nullable = false)
private Long id;
private String attribute1;
private String attribute2;
@OneToOne(cascade = { CascadeType.ALL })
@JoinColumn(name = "id_company", unique = true)
private CompanyProfile companyProfile;
// ...
}
public class CompanyProfile {
@Id
@GeneratedValue
@Column(unique = true, nullable = false)
private Long id;
private String attribute3;
private String attribute4;
private String attribute5;
// ...
}
我使用以下JSON向一个控制器发送POST请求:
{
"attribute1": "value 1",
"attribute2": "value 2",
"companyProfile": {
"attribute3": "value 3",
"attribute4": "value 4",
"attribute5": "value 5"
}
}
所以现在我想执行命令.save()
并让应用程序在其各自的表中插入公司,然后将companyProfile
一次性插入其各自的表中。但是这没有发生,而且我得到了这个:Error Code: 1364. Field 'id_company' doesn't have a default value
。
我可能做错了什么?
答案 0 :(得分:0)
为了你的坚持,我认为你必须坚持下面的顺序,
坚持公司对象,然后
将Company对象设置为CompanyProfile和
最后坚持CompanyProfile