Не могли бы вы помочь мне решить проблему с передачей двух объектов через @RequestBody?Насколько я знаю, вы не можете передать 2 параметра @RequestBody, поэтому я создал Tuple
класс для хранения пользовательских данных.В моем случае мне нужно передать объект Book
и значение int в представлении json.Я уже пробовал разные способы, но каждый раз его нельзя разобрать правильно.
@NoArgsConstructor
@AllArgsConstructor
@Getter
@EqualsAndHashCode
@ToString
public final class Tuple<K, V> {
private K key;
private V value;
}
Я использую Tuple
в этом методе.
@PutMapping("action/returnBook")
public ResponseEntity<Void> returnBook(@RequestBody final Tuple<Long, Long> userIdBookInstanceId) {
leasingHistoryService.returnBook(userIdBookInstanceId.getKey(), userIdBookInstanceId.getValue());
return new ResponseEntity<>(HttpStatus.OK);
}
@Entity
@NoArgsConstructor
@AllArgsConstructor
@Getter
@EqualsAndHashCode
@ToString
public final class Book {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String title;
@ManyToOne(cascade = CascadeType.ALL, optional = false)
private Author author;
}
@Entity
@NoArgsConstructor
@AllArgsConstructor
@Getter
@EqualsAndHashCode
@ToString
public final class Author {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
private String name;
private LocalDate dateOfBirth;
private String bio;
}
Какова структура json, который я должен передать в запросе PUT
?