JAXB unmarshalling к сущностям


Я работаю над проектом, включающим поток XML и преобразование этих данных в сохраненные данные в моей базе данных. До сих пор я добрался до точки, где я могу использовать свой веб-сервис, я сгенерировал некоторые JAXB POJO'S и получил unmarshaling XML-потока запущен.

Я пытаюсь выяснить, есть ли способ перейти прямо от XML к сущностям.

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

1 3

1 ответ:

Вы можете создать свои собственные JAXB-аннотированные объекты, которые также являются Java Persistence API (JPA)-аннотированные объекты. Используя JPA, вы можете сохранить эти объекты в своей базе данных. Преимущество сохранения аннотаций JAXB и JPA в одном классе состоит в том, что любые изменения объекта должны быть сделаны только в этом классе, представлении пользовательского интерфейса и связанном XSD

Это, однако, в некотором смысле нарушает идеи, лежащие в основе архитектуры N уровней. Вы эффективно объединяете свои бизнес-логика с вашим уровнем настойчивости. Для устранения дублирования это может быть хорошей идеей, но иногда вы обнаружите, что используете @Transient и @XmlTransient, чтобы поместить в класс вещи, необходимые только в XML или базе данных, не затрагивая области, где они не нужны. Так что это возможно, но вы хотите взвесить все " за " и "против", прежде чем делать это. Смотрите также этот вопрос и Этот вопрос для получения дополнительных мыслей о компромиссах (все склоняются к сторона размещения обоих наборов аннотаций в одном месте).

Этот вопрос охватывает некоторые инструменты для минимизации усилий по перемещению данных между XML и хранилищем данных через JAXB.