2010-08-05 74 views
0

因此,我的Web應用程序主要使用XML進行客戶端到服務器的交互,而且我目前使用休眠保留了大部分後端。我知道有XML數據庫,您可以使用hibernate通過使用DOM4J實體調用Sessions來保存XML,但我不確定提供XML的最有效方式是什麼。在每次請求對象時,我都會從對象字段生成一個XML文檔,然後將其提供。因此,對於每個新的請求,我都會生成一個全新的XML文檔。所以我可以在第一次請求時在每個運行時週期爲每個文檔生成XML,然後將其存儲在對象的字段中,以便我可以對其運行XSLT命令,但這看起來效率很低。我猜測每次請求資源時生成一個新的Document對象會更有效率,然後在請求被服務之後將其刪除(並使用Hibernate查詢語言進行選擇)......或者我應該使用Hibernate或eXist來持久化xml ?(我真的不想使用xml數據庫!)DOM4J和Hibernate:處理XML

回答

0

您可以將XML作爲CLOB或BLOB存儲在數據庫中。如果查詢時不需要查看文檔內容,則可以將關鍵字字段外部化並根據這些字段查詢XML。

0

關係數據庫的一個主要目的是避免重複。如果您擁有文檔之間共享的對象,並且您在每個文檔中以XML格式存儲對象,則在更改共享對象時必須更新所有文檔。

使用hibernate以正常的關係方式存儲文檔對象字段並使用一些XML編碼器將其轉換爲XML並返回是非常標準的做法。 xstream或CXF。