Проблема с маппингом поля при POST запросе

Есть 2 сущности связаные ManyToOne. В таблице address есть поле r_person_id - FK для person. У меня были пробелмы с маппингом данных класса Address, а точнее поля r_person_id, я сделал для этого отдельное поле у класса. Праблему с маппингом при Get запросе это решило, но вот c Post беда и никак не могу понять, где на косячил.

Person.java:

@Id
@GeneratedValue(strategy = GenerationType.TABLE)
@Column(name = "id")
@JsonProperty("id")
private Long id;

@Column(name = "person_name")
@JsonProperty("name")
private String personName;

@Column(name = "passport_serial")
@JsonProperty("passportSerial")
private int passportSerial;

@Column(name = "passport_number")
@JsonProperty("passportNumber")
private int passportNumber;

@OneToMany(targetEntity = Address.class, mappedBy = "person", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JsonIgnore
private List<Address> personAddresses;

Address.java:

@Id
@GeneratedValue(strategy = GenerationType.TABLE)
@Column(name = "id")
private Long id;

@Column(name = "full_address")
@JsonProperty("fullAddress")
private String fullAddress;

@ManyToOne(targetEntity = Person.class, cascade = CascadeType.ALL)
@JoinColumn(name = "r_person_id", referencedColumnName = "id")
@JsonIgnore
private Person person;

@Column(name = "r_person_id", updatable = false, insertable = false)
@JsonProperty("personId")
private Long refPersonId;

@OneToOne(mappedBy = "address")
@JsonIgnore
private Receipt receiptToAddress;

Вот какой делаю запрос: POST http://localhost:8080/api/address Body:

{
    "fullAddress": "GYM",
    "personId": 2
}

Ожидаю что в базе появится запись с полями fullAddress = "GYM" и r_person_id = 2. Но поле r_person_id вседа null :(


Ответы (1 шт):

Автор решения: Aziz Umarov

попробуйте изменить @Column(name = "r_person_id", updatable = false, insertable = false) на @Column(name = "r_person_id")

→ Ссылка