Предположим, у вас есть N-Tier REST-приложение. Немногие клиентские приложения также используют эту службу REST (Android, Desktop и т. Д. c)
Как мы знаем, аннотации сопоставления JPA размещаются прямо на классах моделей для сопоставления объекта сущности с таблицами базы данных. Теперь в нашем сценарии как android, так и настольным приложениям также нужны классы моделей для JSON связывания и десериализации данных JSON в соответствующий java объект.
Как мы знаем, хороший подход использовать модель во всех приложениях означает разделить этот слой модели на отдельную библиотеку java и использовать ее во всех приложениях (REST-сервер и клиенты)
Вопрос в том, что у нас есть аннотации JPA на java классы на уровне модели, если мы извлекаем эту библиотеку для двух клиентов, возникают некоторые проблемы:
- Аннотации сопоставления JPA раскрывают дизайн базы данных для клиентских приложений, что является проблемой безопасности
- Нам нужно добавить зависимость аннотации JPA в тех клиентах, которые практически не нужны
Это заставляет меня задуматься о подходе JPA xml сопоставления конфигов для разделения констант сопоставления JPA с java кодируйте классы в отдельный файл xml, а затем добавьте библиотеку java в качестве зависимости в трех приложениях (Сервер REST, android, рабочий стол)
Это правильный выбор или нет, и вам известен какой-либо другой подход в этом сценарии?