gpt4 book ai didi

jackrabbit - JCR checkin / checkout 操作

转载 作者:行者123 更新时间:2023-12-04 02:06:20 25 4
gpt4 key购买 nike

我刚刚开始使用 JCR(apache jackrabbit),我想问一个简单的问题(因为我找不到好的教程):
那么我需要 Node.checkout 和 Node.checkin 方法做什么呢?
他们的意思是什么?

谢谢

最佳答案

“ checkin ”和“ checkout ”方法与 JCR 存储库如何跟踪内容版本有关。 'checkout' 方法向存储库发出信号,表明您的客户端应用程序(可能)将修改一些可版本化的内容。 “ checkin ”方法向存储库发出信号,表明您的客户端应用程序已对可版本化内容进行了更改,并且存储库应在版本历史记录中记录这些更改(例如,新版本)。

例如,假设我们要在 '/a/b/c' 创建一个可版本化的节点。这是使用如下代码完成的:

要创建内容,您只需在节点上设置“mix:versionable”mixin(或使用从“mix:versionable”继承的 mixin 或主节点类型),然后保存更改。此时,存储库将初始化该节点(或子图)的版本历史记录。

Node b = session.getNode("/a/b");
Node newNode = b.addNode("c");
newNode.addMixin("mix:versionable");
// set other properties and create children
session.save();

在 'session.save()' 时,存储库将记录 'mix:versionable' mixin,并将在 '/a/b/c' 处初始化内容的版本历史记录。从现在开始,您的客户端应用程序使用“checkout”和“checkin”将新版本添加到历史记录中。
VersionManager vm = session.getWorkspace().getVersionManager();
vm.checkout("/a/b/c");
// make some changes at/under '/a/b/c'
session.save();
// Can make more changes and save, if desired
vm.checkin("/a/b/c");

当调用“checkin”时,存储库将采用“/a/b/c”的当前状态并将其添加到版本历史记录中。当然,每次要对可版本化节点进行更改时,都会重复此过程。

关于jackrabbit - JCR checkin / checkout 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3943609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com