Подтвердить что ты не робот

Лучший способ сопоставления JAXB с таблицей базы данных

У меня есть входящий xml, который я сопоставляю с объектами JAXB с помощью инструмента xjc (для создания pojos)

Мне интересно, какой лучший подход - сопоставить эти объекты с различными таблицами.

Объект/Xml может отображать несколько таблиц, которые, как мне кажется, вызывают спящий режим. Как базовое решение, я считаю, что мне нужно каким-то образом аннотировать поля в объектах, возможно (через теги в xsd? я dont know) для имен столбцов базы данных.

Кто-нибудь сталкивался с этим раньше?

Спасибо

4b9b3361

Ответ 1

Я думаю, вам нужно Hyperjaxb3, который обеспечивает реляционную стойкость для объектов JAXB.

@lexicore является автором этого проекта.

Ответ 3

Вы можете использовать расширение для xjc - hyperjaxb

  • hyperjaxb2 - Реляционная персистентность для данных XML, с JAXB и Hibernate.
  • hyperjaxb3 - Уровень сдерживания для объектов JAXB.

Для этой цели предпочтительнее hyperjaxb3.

Вот ссылка на некоторый учебник Сгенерировать классы Java JPA из файла схемы XSD с помощью Maven

Ответ 4

Непонятно, какое соответствие между схемой базы данных и схемой XML. Когда слишком мало обобщений и согласованности между ними, тогда это худший случай, вам нужно связать XML и базу данных руками для каждого объекта JAXB.

Если есть достаточно хорошо согласованные и понятные правила, вы можете попытаться написать собственный генератор кода для создания кода сущностей с аннотациями JAXB и JPA.

Кроме того, попробуйте посмотреть на движок, который поддерживает аннотации JAXB и JPA из коробки: EclipseLink.

Ответ 5

Если у вас есть сложные объекты, база данных без схемы значительно упростит время разработки и обработки.

Из моего опыта: получил миллионы XML с 200-300 различными атрибутами, вложенными в несколько уровней.

Прошло несколько дней при создании объектов для JAXB + JPA. Скорость вставки составляла около 50 объектов в секунду, разделялась на 20-40 таблиц.

MongoDB скорость около 1000 объектов в секунду. И НИКАКОЕ развитие. Просто прочитайте xml, конвертируйте его в JSON с помощью org.json, например, конвертируйте json в BSON и вставьте.

Профилирование показало, что две конверсии занимали незначительное время (пара процентов). Большинство времени было затрачено на сохранение базы данных (в 20-40 раз быстрее, чем Oracle RDBMS).