Sim*_*eon 1 java jackrabbit jcr
我正在尝试从版本历史记录中删除一个版本,但出现 javax.jcr.ReferentialIntegrityException: Unable to remove version。至少引用过一次。
当我尝试删除对该版本的所有引用时,似乎没有任何引用并且仍然不允许我删除该版本。我确定这不是 root 版本,我也确定它不是 root 之后的第一个版本。
这是我的代码:
Version ver = manager.checkin(parentNodePath);
VersionHistory versionHistory = manager.getVersionHistory(parentNodePath);
PropertyIterator versionReverences = ver.getReferences();
for (Property verRef = versionReverences.nextProperty(); versionReverences.hasNext();) {
verRef.remove();
}
session.save();
versionHistory.removeVersion(ver.getName());
Run Code Online (Sandbox Code Playgroud)
非常感谢任何帮助,谢谢。
在checkin()示例的第一行创建您的版本的调用jcr:baseVersion将版本化节点的引用设置为您刚刚创建的版本。该verRef.remove()语句无法删除此引用,因为 jcr:baseVersion 属性是受保护的。
在删除此版本之前,您需要删除内容节点或使用类似的方法checkin()或update()使jcr:baseVersion引用指向另一个版本。
| 归档时间: |
|
| 查看次数: |
2109 次 |
| 最近记录: |