我刚刚开始使用JCR(apache jackrabbit),我想问一些简单的问题(因为我找不到好的教程):那么我需要什么Node.checkout和Node.checkin方法呢?他们的意思是什么?
谢谢
'checkin'和'checkout'方法与JCR存储库如何跟踪内容版本有关.'checkout'方法向存储库发出信号,告知您的客户端应用程序(可能)将修改某些可版本化的内容."签入"方法向存储库发出信号,表明客户端应用程序已对可版本化内容进行了更改,并且存储库应在版本历史记录中记录这些更改(例如,新版本).
例如,让我们假设我们想在'/ 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();
Run Code Online (Sandbox Code Playgroud)
在'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");
Run Code Online (Sandbox Code Playgroud)
当调用'checkin'时,存储库将采用当前状态'/ a/b/c'并将其添加到版本历史记录中.当然,每次要对可版本化节点进行更改时,都会重复此过程.
| 归档时间: |
|
| 查看次数: |
4345 次 |
| 最近记录: |