У меня есть веб-приложение Java EE 6, которое предлагает свои данные через веб-сервис REST JAX-RS.
Сущности помечаются аннотациями JPA, а также аннотациями javax.xml.bind.
Моя цель - собрать клиентский jar из моего проекта веб-приложения, который содержит аннотированные классы «DTO» JAX-RS, которые будут использоваться для демаршалинга JAX на клиентах моего веб-приложения.
Поместить необработанные сущности в jar-файл клиента невозможно из-за аннотаций JPA, которые могут привести к фиктивным зависимостям для клиента.
Есть ли способ сделать это без написания классов JAX-RS дважды для веб-приложения и клиентов?
Я думал об обработке аннотаций и уничтожении всех аннотаций JPA в сущностях, это довольно изощренно, но не очень удобно.
Моя вторая идея состоит в том, чтобы извлечь интерфейс необходимых геттеров / сеттеров сущностей. Вопрос в том, как обращаться с аннотациями JAX, которые размещаются у членов класса и у получателей.
Кажется, что оба способа работают как-то. Но есть ли универсальное решение для этой задачи?
Подсказка: да, я знаю способ раскрытия JPA-сущностей напрямую через отдых и его недостатки, связанные с эволюцией и т. Д. =)