У остальных ресурсов не всегда есть сопоставление "один к одному" с вашими объектами jpa. Как я вижу, есть несколько проблем, которые я пытаюсь выяснить, как обращаться:
- Когда ресурс имеет информацию, которая заполняется и сохраняется несколькими объектами.
- Когда объект имеет больше информации в нем, которую вы хотите отправить в качестве ресурса. Я мог бы просто использовать Jackson
@JsonIgnore
, но у меня все равно были бы проблемы с 1, 3 и 4. - Когда объект (например, совокупный корень) имеет вложенные объекты и вы хотите включить часть своих вложенных объектов, но только к определенному уровню вложенности в качестве вашего ресурса.
- Если вы хотите исключить один кусок объекта, когда его часть одного родительского объекта, но исключает отдельную часть, когда ее часть другого родительского объекта.
- Взорванные циклические ссылки (я получил это в основном с JSOG с помощью Jackson
@JsonIdentityInfo
)
Возможные решения: Единственный способ, с помощью которого я мог бы подумать, будет справляться со всеми этими проблемами, - это создать целую кучу классов ресурсов, которые имели бы конструкторы, которые занимали бы необходимые объекты для создания ресурса и размещали на нем необходимые геттеры и сеттеры для этого ресурса, Это перебор?
Чтобы решить 2, 3, 4 и 5, я мог бы просто выполнить предварительную и пост-обработку на фактическом объекте перед отправкой его в Jackson для сериализации или десериализации моего pojo в JSON, но это не касается проблемы 1.
Это все проблемы, которые я бы подумал, что другие столкнулись бы, и мне любопытно, какие решения могут предложить другие люди. (В настоящее время я использую JPA 2, Spring MVC, Jackson и Spring -Data, но открыт для других технологий)