JAXB неупорядочивает объекты

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

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

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


person grantk    schedule 06.04.2011    source источник
comment
Почему бы не аннотировать ваши POJO как объекты напрямую?   -  person ThomasRS    schedule 07.04.2011


Ответы (1)


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

Однако это в некоторой степени разрушает идеи, лежащие в основе многоуровневой архитектуры. Вы эффективно объединяете свою бизнес-логику с уровнем сохраняемости. Ради устранения дублирования это может быть хорошей идеей, но иногда вы обнаружите, что используете @Transient и @XmlTransient, чтобы поместить в класс вещи, только необходимые в XML или базе данных, не влияя на те области, где они не нужны.

Так что это возможно, но вы хотите взвесить все за и против, прежде чем это делать. См. Также этот вопрос и этот вопрос, чтобы узнать больше о компромиссах (все склоняются к сторону размещения обоих наборов аннотаций в одном месте).

В этом вопросе рассматриваются некоторые инструменты, позволяющие минимизировать усилия по перемещению данных между XML. и хранилище данных через JAXB.

person justkt    schedule 06.04.2011
comment
+1, но я не согласен, что это слияние бизнес-логики и настойчивости. Пример смешивания JAXB и JPA см. На странице bdoughan.blogspot.com/2010/08/ - person bdoughan; 07.04.2011
comment
Спасибо, мне нужны были хорошие мнения и обсуждения, чтобы увидеть, что здесь делать! - person grantk; 07.04.2011