Что такое хорошая стратегия для преобразования сущностей jpa в спокойные ресурсы

Ресурсы Restful не всегда имеют однозначное сопоставление с вашими сущностями jpa. На мой взгляд, есть несколько проблем, с которыми я пытаюсь разобраться:

Когда ресурс содержит информацию, которая заполняется и сохраняется более чем одним объектом.Когда у объекта есть больше информации, которую вы хотите отправить как ресурс. Я мог бы просто использовать Джексона@JsonIgnore но у меня все равно будут проблемы 1, 3 и 4.Когда у сущности (например, у совокупного корня) есть вложенные сущности, и вы хотите включить часть своих вложенных сущностей, но только до определенного уровня вложенности в качестве вашего ресурса.Когда вы хотите исключить один кусок объекта, если он является частью одного родительского объекта, но исключить отдельный элемент, если он является частью другого родительского объекта.Взрывные круговые ссылки (я получил это в основном работает сJSOG используя Джексона@JsonIdentityInfo)

Возможные решения: Единственный способ, которым я мог бы придумать, чтобы справиться со всеми этими проблемами, - это создать целую кучу «ресурсных» классов, которые имели бы конструкторы, которые брали бы необходимые сущности для создания ресурса и помещали в него необходимые методы получения и установки для этого ресурса. , Это излишне?

Чтобы решить задачи 2, 3, 4 и 5, я мог бы просто выполнить некоторую предварительную и последующую обработку фактического объекта, прежде чем отправить его Джексону для сериализации или десериализации моего pojo в JSON, но это не решает проблему 1.

Это все проблемы, которые, я думаю, могли бы встретить другие, и мне любопытно, какие решения предлагают другие люди. (В настоящее время я использую JPA 2, Spring MVC, Jackson и Spring-Data, но открыт для других технологий)