Проблема с маппингом поля при 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")