如何在SpringBoot中添加外键空值?

yfwxisqw  于 2021-06-26  发布在  Java
关注(0)|答案(1)|浏览(254)

我想记录到外键为空的数据库。我知道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?

3zwtqj6y

3zwtqj6y1#

你应该移除 city 属性完全来自json。
您的json应该如下所示:

{
    "namePerson": "New person",
    "phonePerson": "0999999"
}

这样你的城市就可以进入了 Person 对象将设置为 null ,因此存储 null 作为数据库中的外键。

相关问题