I want to make a request through Postman and accept it in the method below. An error pops up, as I understand it, due to the fact that I incorrectly process the date. Question: how can I send the date via postman and save it correctly in the database?
Log in IDEA and Postman:
Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.time.LocalDate` from String "23/02/2020": Failed to deserialize java.time.LocalDate: (java.time.format.DateTimeParseException) Text '23/02/2020' could not be parsed at index 0; nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.time.LocalDate` from String "23/02/2020": Failed to deserialize java.time.LocalDate: (java.time.format.DateTimeParseException) Text '23/02/2020' could not be parsed at index 0
at [Source: (PushbackInputStream); line: 2, column: 20] (through reference chain: task.homerent.model.Contract["start_date"])]
Inquiry:
{
"start_date" : "23/02/2020",
"end_date" : "27/02/2020",
"id_house" : 2,
"id_tenant" : 2
}
Code:
@PostMapping("/rent")
@PreAuthorize("hasAuthority('user:write')")
public void homeRent(@RequestBody House house) {
System.out.println("ID арендатора");
System.out.println(house.getId_tenant());
System.out.println("Начало аренды");
int dates = Integer.valueOf(String.valueOf(house.getStart_date()));
LocalDate date = new LocalDate(dates); - an error is displayed LocalDate(int, int, int) has private access in 'java.time.LocalDate'`
System.out.println(date);
}
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;
}