在我當前的項目中(訂單管理系統從頭開始構建),我們正在以保存在關係數據庫中的XML對象的形式處理訂單。XML與對象樹
我就勾勒出這樣的要求:選擇的順序從任何地方的各種細節
- 更新/(從CRM系統如)
- 豐富的數據保持的紀錄變化(無效舊數據,插入新的值)的訂單
- 細節應該是由SQL查詢容易選擇(爲2級支持)
我們做了什麼:
- 序列化與專有代碼完成,拆卸順序到表像
customer
,address
,phone_number
,order_position
等 - 每當爲了進一步加工了一下(例如由於傳入的事件),它將從數據庫中完全讀取並彙編回XML文檔。
- 數據的選擇由XPath完成(分散在代碼中)。
- 大部分更新都是直接在數據庫中完成的(訂單將在下一步重新加載)。
的問題,我們面臨:
- 順序結構(XSD)與每一個版本的發展。因此XPath和自定義持久性經常會中斷併產生錯誤。
- 我們結束了混合使用文檔和數據庫(因爲持久層無法保留文檔中的更改)。
表現並不是一個真正的問題(還沒有),因爲它是一個離線系統,訂單往往是故意延遲了幾天。
我不指望免費諮詢在這裏,但我是如何的辦法可以改善一個有點困惑(下一次,基本上)。
您認爲如何處理這些需求是一個很好的解決方案? 會使用對象圖,像JXPath和OGNL和OR映射器是更好的方法嗎?或者使用例如XML支持Oracle數據庫?
並且JXPath或ONGL將等同於XPath?我必須承認,我仍然要閱讀這些內容(但我會)。 – Elbonian 2011-02-04 21:01:59
我的建議是將數據作爲代表您的域模型的POJO使用,並將XML表示形式另存爲連線格式。這將爲您提供基於標準的解決方案,您可以在任何地方部署。 – 2011-02-04 21:08:15