Как реализовать поиск из OneToMany
сущностей?У меня есть Book and
Категории` моделей доменов.
public class Category {
private long id;
private String name;
@OneToMany(mappedBy = "category", cascade = CascadeType.ALL)
private Set<Book> books;
}
public class Book {
private long id;
private String title;
@ManyToOne
@JoinColumn(name = "category_id")
private Category category;
}
Это мой метод в моем контроллере:
@GetMapping("/books")
public String findAll(Model model, @RequestParam(value = "category", required = false) String category) {
if (category != null && !category.isEmpty()) {
model.addAttribute("books", bookService.findByCategory(category));
} else {
model.addAttribute("books", bookService.findAll());
}
return "book/findAll";
}
Мой сервис:
@Override
public Iterable<Book> findByCategory(String category) {
return bookRepository.findByCategory(category);
}
И мойхранилище:
Iterable<Book> findByCategory(String category);
По запросу /books/?category=Computer
в браузере возникает следующая ошибка:
There was an unexpected error (type=Internal Server Error, status=500).
Parameter value [Computer] did not match expected type [io.github.julianjupiter.springbootjpamanytoone.domain.Category (n/a)]; nested exception is java.lang.IllegalArgumentException: Parameter value [Computer] did not match expected type [io.github.julianjupiter.springbootjpamanytoone.domain.Category (n/a)]
Спасибо.