Полагаю, вы используете ORM для получения данных из базы данных, а затем сериализации и отправки через веб-сервис.
Поэтому, когда вы выбираете список BlogGadgets
, в нем есть Blogs
, но у того же Blogs
есть список с таким же BlogGadgets
и так далее ...
Это называется циклическая ссылка, и очень часто они присутствуют в вашей объектной модели, но когда вы хотите отправить их по проводам, вам нужно убедиться, что у вас есть граф объектов, по крайней мере для используемого вами сериализатора.
Одним из решений этой проблемы было бы преобразование / сопоставление используемых вами объектов / объектов домена с объектами передачи данных, которые будут иметь надлежащую древовидную структуру, например: (в c #, но в java она должна быть почти такой же)
[Serializable]
public class BlogGadgetDto
{
public int GadgetId {get;set;}
public BlogSmallDto Blog {get;set;}
// and so on
}
[Serializable]
public class BlogSmallDto
{
public int BlogId {get;set;}
public string BlogName {get;set;}
// and so on
}
Обратите внимание, что теперь BlogGadgetDto
ссылаются на BlogSmallDto
, но не наоборот.