Всем привет!
В моем обучающем проекте есть две сущности: Animal и Client. Это животное и хозяин. В каждой сущности есть ссылка на другую, то есть у Animal есть поле Client, и наоборот. Сущности связаны Many-to-One, у животного только один хозяин, но у одного хозяина может быть несколько животных.
Суть вопроса в том, что у меня есть REST контроллер, и когда я получаю какой-нибудь getClientById, то получается рекурсия, где client ссылается на animal, а тот в свою очередь на клиента и так по кругу.
Я обошел это с помощью аннотации @JsonIgnoreProperties. Но в случае many-to-one все работает отлично:
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "client_id", insertable = false, updatable = false)
@JsonIgnoreProperties("animal")
private Client client;
а в обратном случае, все нихрена не работает отлично:
@OneToMany(fetch = FetchType.LAZY, mappedBy = "client", cascade = CascadeType.ALL)
@JsonIgnoreProperties(value = { "client", "complaints" })
private List<Animal> animals;
и я даже вроде бы знаю почему: JsonIgnoreProperties смотрит на поля List-а, вместо полей Animal для каждого элемента списка.
---
Может быть кто-нибудь знает и подскажет как это обойти? Заранее спасибо