Вопрос слишком широк для меня, чтобы ответить.Но у меня есть определенный опыт использования Джексона в JAXB с сущностями JPA, которые могут вас заинтересовать.
В моем случае у меня была модель JPA с примерно тремя дюжинами сущностей и множеством циклическихРекомендации.График отношений между сущностями также был почти прочно связан.Другими словами, можно было перейти практически к любой сущности в наборе из любой другой, следуя отношениям сущностей.В моем случае с описанными сущностями и Jackson 1.5 наложение аннотаций JAXB на мои сущности JPA оказалось плохой идеей.
С одной стороны, Джексон 1.5 попал в бесконечную рекурсию по циклическим ссылкам.Я считаю, что ошибка оператора, а не ошибка.Джексон - отличное программное обеспечение.Кроме того, я думаю, что в следующем выпуске 1.6 будут реализованы новые функции для этого JACKSON-235 .Так что скоро это может быть спорным!
Моя другая трудность связана с сериализованной компактностью в лице сильно связанных сущностей.Сериализация всех моих отношений сущности была непрактичной.Я бы сериализовал непристойное количество ненужной информации в каждом запросе, наивно следуя всем отношениям сущностей до их полной глубины.
Я хотел указать несколько сериализаций моих объектов JAXB, выбрав один с соответствующими полями и отношениями в зависимости отпредполагаемое использование.Но, насколько мне известно, JAXB и Джексон не предлагают такой гибкости.Они предлагают значительную гибкость в определении представления - что является переходным процессом, как выглядят списки и т. Д. - но я не думаю, что для одного объекта возможно несколько представлений.Может быть, есть умный способ определить несколько представлений в JAXB или Джексоне и переключиться во время выполнения ... Мне было бы интересно узнать, существует ли такая вещь.Возможно, есть какая-то особенность, о которой я не знаю, или какая-то хитрость, которую можно сыграть с помощью подклассов.Но я не смог его найти, так что в итоге я сдался и пошел с DTO.
Опять же, все это довольно специфично для модели.Возможно, это не проблема для вас (или, может быть, у вас есть умные решения для этих проблем!)