我想记录到外键为空的数据库。我知道springboot不允许你这么做。我试着用@query insert录制。但它不能。我从客户机格式json发送数据。
实体城市。
@Entity
@Table(name = "City")
public class City {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="ID_City")
Long idCity;
@Column(name="Name_City")
String nameCity;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "city")
private Collection<City> city;
/// getter and setter
实体人
@Entity
@Table(name = "Person")
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="ID_Person")
Long idPerson;
@Column(name="Name")
String namePerson;
@Column(name="Phone")
String phonePerson;
@ManyToOne
@JoinColumn(name = "id_city")
private City city;
/// getter and setter
数据发送到springboot
{
"namePerson": "New person",
"phonePerson": "0999999",
"city": {
"idCity": "",
"nameCity": ""
}
}
问题
有没有办法将外键的值设为null?
1条答案
按热度按时间3zwtqj6y1#
你应该移除
city
属性完全来自json。您的json应该如下所示:
这样你的城市就可以进入了
Person
对象将设置为null
,因此存储null
作为数据库中的外键。