gpt4 book ai didi

java - 无法删除 Jackrabbit 中的版本

转载 作者:行者123 更新时间:2023-12-02 00:50:13 24 4
gpt4 key购买 nike

我试图从版本历史记录中删除版本,但收到 javax.jcr.ReferentialIntegrityException: 无法删除版本。至少被引用一次。

当我尝试删除对该版本的所有引用时,似乎没有任何引用,并且仍然不允许我删除该版本。我确信这不是 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());

非常感谢任何帮助,谢谢。

最佳答案

在示例的第一行创建版本的 checkin() 调用将版本控制节点中的 jcr:baseVersion 引用设置为您刚刚创建的版本。 verRef.remove() 语句无法删除此引用,因为 jcr:baseVersion 属性受到保护。

您需要删除内容节点或使用 checkin()update() 等方法来创建 jcr:baseVersion 引用在删除此版本之前指向另一个版本。

关于java - 无法删除 Jackrabbit 中的版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3531597/

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