DOM4J и Hibernate: работа с XML - PullRequest
       3

DOM4J и Hibernate: работа с XML

0 голосов
/ 05 августа 2010

Таким образом, мое веб-приложение в основном использует XML для взаимодействия между клиентом и сервером, и в настоящее время я сохраняю большую часть своей серверной части, используя hibernate. Я знаю, что есть базы данных XML, и там вы можете сохранить XML, используя hibernate, вызывая Sessions с сущностью DOM4J, но я не уверен, что на самом деле является наиболее эффективным способом обслуживания XML. В данный момент каждый раз, когда объект является запросом, я генерирую XML-документ из полей объекта, а затем подаю его. Поэтому для каждого нового запроса я создаю совершенно новый XML-документ. Таким образом, я мог сгенерировать XML для каждого документа во время каждого цикла выполнения при первом запросе, а затем сохранить его в поле для объекта, чтобы затем запустить команду XSLT для него, но это кажется неэффективным. Я предполагаю, что более эффективно генерировать новый объект Document каждый раз, когда ресурс запрашивает, а затем отбрасывать его после того, как запрос был обработан (и использовать для выбора язык запросов Hibernate) ... Или я должен сохранить xml, используя Hibernate или eXist ? (Я действительно не хочу использовать базу данных xml!)

Ответы [ 2 ]

0 голосов
/ 07 декабря 2011

Одна из основных целей реляционной базы данных - избежать дублирования.Если у вас есть объекты, которые совместно используются документами, и вы храните их в XML в каждом документе, вам придется обновлять все документы при изменении общего объекта.

Это довольно стандартная практика для хранения вашего документаполя объекта обычным реляционным способом, используя hibernate, и используют некоторый XML-маршаллер для преобразования его в XML и обратно, например, xstream или CXF.

0 голосов
/ 06 августа 2010

Вы можете сохранить XML как CLOB или BLOB в базе данных.Если вам не нужно заглядывать внутрь документа при запросе, вы можете просто вывести ключевые поля и запросить XML на их основе.

...