Ответ 1
Я думаю, вам нужно Hyperjaxb3, который обеспечивает реляционную стойкость для объектов JAXB.
@lexicore является автором этого проекта.
У меня есть входящий xml, который я сопоставляю с объектами JAXB с помощью инструмента xjc (для создания pojos)
Мне интересно, какой лучший подход - сопоставить эти объекты с различными таблицами.
Объект/Xml может отображать несколько таблиц, которые, как мне кажется, вызывают спящий режим. Как базовое решение, я считаю, что мне нужно каким-то образом аннотировать поля в объектах, возможно (через теги в xsd? я dont know) для имен столбцов базы данных.
Кто-нибудь сталкивался с этим раньше?
Спасибо
Я думаю, вам нужно Hyperjaxb3, который обеспечивает реляционную стойкость для объектов JAXB.
@lexicore является автором этого проекта.
Обратитесь к приведенным ниже ссылкам для HyperJaxb
.
Надеемся, что приведенные выше ссылки будут полезны для вас.
Вы можете использовать расширение для xjc
- hyperjaxb
Для этой цели предпочтительнее hyperjaxb3
.
Вот ссылка на некоторый учебник Сгенерировать классы Java JPA из файла схемы XSD с помощью Maven
Непонятно, какое соответствие между схемой базы данных и схемой XML. Когда слишком мало обобщений и согласованности между ними, тогда это худший случай, вам нужно связать XML и базу данных руками для каждого объекта JAXB.
Если есть достаточно хорошо согласованные и понятные правила, вы можете попытаться написать собственный генератор кода для создания кода сущностей с аннотациями JAXB и JPA.
Кроме того, попробуйте посмотреть на движок, который поддерживает аннотации JAXB и JPA из коробки: EclipseLink.
Если у вас есть сложные объекты, база данных без схемы значительно упростит время разработки и обработки.
Из моего опыта: получил миллионы XML с 200-300 различными атрибутами, вложенными в несколько уровней.
Прошло несколько дней при создании объектов для JAXB + JPA. Скорость вставки составляла около 50 объектов в секунду, разделялась на 20-40 таблиц.
MongoDB скорость около 1000 объектов в секунду. И НИКАКОЕ развитие. Просто прочитайте xml, конвертируйте его в JSON с помощью org.json, например, конвертируйте json в BSON и вставьте.
Профилирование показало, что две конверсии занимали незначительное время (пара процентов). Большинство времени было затрачено на сохранение базы данных (в 20-40 раз быстрее, чем Oracle RDBMS).