2013-07-21 50 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

虽然你可以这样使用它们,但这只是使用它们的一种方式。 –

相关问题