У меня есть следующая (упрощенная) структура сущности:
public class Animal {
private long id;
private int regionId;
private int categoryId;
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "animal")
private List<Attributes> attributes;
}
public class Attributes {
private long id;
@ManyToOne(fetch = FetchType.LAZY)
private Animal animal;
private String name;
private String value;
@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private Detail detail;
}
public class Detail {
private long id;
private String size;
private String type;
}
Это часть приложения Spring Boot.
Я бы хотел получить запрос Animal как по своим собственным атрибутам, так и по атрибутам в Подробности .
Мой запрос должен выглядеть следующим образом:
GET: /animal/{regionId}/{categoryId}?size=medium,large&type=carnivorous,herbivore
Это будет означать, что мне нужнозапросить всех животных, которые имеют определенные regionId и categoryId и которые также имеют Подробности с размером и типом в пределах предоставленного списка значений.Кроме того - и я думаю, что это сложная часть - параметры size и type являются необязательными, поэтому запрос должен учитывать это.
В настоящее время у меня естьPlanReposiory, которая расширяет CrudRepository и предоставляет основные методы запросов для сущности Plan .
Я пытался обернуть голову вокруг API Criteria, чтобы найти способ использовать его для достижения этой цели., но я не понимаю, как я могу поместить все это в моем хранилище.Есть идеи?