Не сохраняются значения в базе данных

Почему id_house и id_tenant у меня null, если я отправляю значения? Дата сохраняет корректно. Как мне задать того, кто арендует и какую квартиру. Вероятно, что я некорректно как-то обрабатываю, потому что в Entity у меня они указаны в качестве классов. В общем, не понимаю с чем конкретно связано.

Принимаю значения:

@PostMapping("/rent")
    @PreAuthorize("hasAuthority('user:write')")
    public void homeRent(@RequestBody Contract contract) {
        contractRepository.save(contract);
    }

Contract:

@Data
@Entity
@Table(name = "contract", schema = "public")
public class Contract {
    @Id
    @GeneratedValue(strategy= GenerationType.IDENTITY)
    @Column(name = "id")
    private Long id;

@ManyToOne
@JoinColumn(name = "id_house")
@ToString.Exclude
@EqualsAndHashCode.Exclude
@JsonIgnore
private House house;

@ManyToOne
@JoinColumn(name = "id_tenant")
@EqualsAndHashCode.Exclude
@ToString.Exclude
@JsonIgnore
private User user;

@Column(name = "end_date")
private LocalDate end_date;
@Column(name = "start_date")
private LocalDate start_date;
}

Запрос через Postman:

{
    "start_date" : "2020-03-12",
    "end_date" : "2020-03-19",
    "id_house" : 2,
    "id_tenant" : 3
}

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

Автор решения: Blacit

Проблема была легко решена, необходимо было сохранять именно классы, вот моя реализация:

public class ContractDto {

    @NotNull
    @NotEmpty
    private LocalDate start_date;

    @NotNull
    @NotEmpty
    private LocalDate end_date;

    @NotNull
    @NotEmpty
    private Long id_house;

    @NotNull
    @NotEmpty
    private Long id_tenant;

    public LocalDate getStart_date() {
        return start_date;
    }
геттеры, сеттеры..
}

Пример того, как сохранять:

 @PostMapping("/rent")
 @PreAuthorize("hasAuthority('user:write')")
    public void homeRent(@RequestBody ContractDto contractDto) {
    House house = houseRepository.findById(contractDto.getId_house()).orElseThrow();
    User user = userRepository.findById(contractDto.getId_tenant()).orElseThrow();
    Contract contract = new Contract();
    contract.setHouse(house);
    contract.setUser(user);
    contract.setStart_date(contractDto.getStart_date());
    contract.setEnd_date(contractDto.getEnd_date());
    
    contractRepository.save(contract);
  }
→ Ссылка