Я использую Jackson Hibernate4Module для решения проблем с сериализацией при работе с лениво загруженным прокси в проекте Spring Data Rest.
В целом он решает проблему Джексона, пытающуюся сериализовать неинициализированные прокси, однако один побочный эффект заключается в том, что выход JSON отличается:
Выбирается напрямую: api/cases/5400
{
"id": 5400,
"practiceReference": "DWPYI9"
}
Получено с помощью лениво загруженного @ManyToOne: api/submissions/11901/parentCase
{
"content": {
"id": 5400,
"practiceReference": "DWPYI9"
}
}
Выбирается с помощью нелицевой загрузки @ManyToOne: api/submissions/11901/parentCase
{
"id": 5400,
"practiceReference": "DWPYI9"
}
Как видно из вышеизложенного, JSON-представление отличается при сериализации ленивой ассоциации @ManyToOne
: объект обернут в "контент" node.
Если ассоциация не является ленивой, то одно и то же представление записывается независимо от пути.
Есть ли причина для этого и может ли быть предотвращен дополнительный "контент" node?
Обновление
Я нашел тот же (удаленный) вопрос здесь:
на который ссылаются:
https://github.com/FasterXML/jackson-datatype-hibernate/issues/77
Также сообщается здесь, так что кажется известной проблемой:
https://github.com/FasterXML/jackson-datatype-hibernate/issues/97