2013-07-21 74 views
1

從JCR和Jackrabbit開始我不明白工作區是什麼以及它是如何使用的。爲什麼它在第一個地方命名工作區?像數據庫這樣的存儲庫,像表格這樣的工作空間和像行(或者很多)的項目?什麼是內容存儲庫中的工作區?

回答

6

每個JCR工作空間,就像是你的內容樹不同的根,所以你可以在工作區A/foo的一個節點,並在工作區B.在不同的節點/富

一個節點可以有相應的節點其他工作區:工作區A的/ foo節點可以克隆到工作區B中的/ foo,從而創建相應的節點。然後兩個節點都可以在一段時間內保持自己的生活,同時保持相應的狀態,以便稍後用一個JCR呼叫更新另一個節點的內容。

這可以用於內容分段,例如,其中一個工作區保存網站的實時內容,而另一個保存分段內容。

我不確定與數據庫的比較是什麼,也許是不同的模式,有些功能允許用另一個數據集更新一組表。

在我的團隊(Apache Sling,Adobe CQ/AEM)中,我們總是使用單個工作空間,根據我的經驗,多個工作空間會讓事情變得更加複雜和不透明,而且我喜歡它們。

http://wiki.apache.org/jackrabbit/DavidsModel只有在需要克隆(),merge()和update()時,規則3才建議使用工作區,這在我看來是很好的建議,我會在使用工作區之前認真檢查這些方法是否符合我的需求。

+0

謝謝,你知道關於如何組織層次結構中的節點等的書籍等。我之前從未使用過內容存儲庫,但無法找到任何教程。 – LuckyLuke

+0

不幸的是,我不認爲有任何書籍,這是一個遺憾,因爲這是JCR成功的關鍵因素。我前段時間寫了一篇文章(http://dev.day.com/content/ddc/blog/2009/04/cq5tags.html),可能會提供一些有用的見解,並且可以將您的用例公開給Apache Jackrabbit用戶列表(http://jackrabbit.apache.org/mailing-lists.html)以獲得一些建議。 –

0

工作區是在將更新提交到JCR主副本之前進行本地更新的JCR的工作副本。

+2

雖然你可以這樣使用它們,但這只是使用它們的一種方式。 –

相關問題