首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JCR移动内容

JCR移动内容
EN

Stack Overflow用户
提问于 2014-01-13 17:50:21
回答 1查看 951关注 0票数 0

我在从一条路径移动到另一条路径的时候遇到了一个问题。

正在尝试将节点下的文档列表(从jcr中的临时节点)移动到新路径(新节点,不包含任何文档)。

节点属于混合类型。

以下是创建文档节点的部分代码片段:

代码语言:javascript
复制
Node documentNode = session.getNode("/1/doc/1").addNode("Test_Sample", "et:document");
documentNode.setProperty(PROPERTY_ID, 123);
documentNode.setProperty(Property.JCR_TITLE, "Test Sample");
documentNode.setProperty(Property.JCR_DESCRIPTION, "Sample Description");
documentNode.setProperty(ETNodeTypes.ET_TAGS.getName(), "web");

Node resourceNode = documentNode.addNode (Property.JCR_CONTENT, "nt:resource");
resourceNode.setProperty (Property.JCR_MIMETYPE, "application/xstream");
resourceNode.setProperty (Property.JCR_ENCODING, "UTF-8");
Binary value = session.getValueFactory().createBinary(new ByteArrayInputStream(document.getData()));
resourceNode.setProperty (Property.JCR_DATA, value);

Calendar lastModified = Calendar.getInstance ();
resourceNode.setProperty (Property.JCR_LAST_MODIFIED, lastModified);
session.save();

VersionManager versionManager = session.getWorkspace().getVersionManager();
documentNode.addMixin(JcrConstants.MIX_VERSIONABLE);
versionManager.checkin(documentNode.getPath());
doc.setVersionNumber(versionManager.getBaseVersion(documentNode.getPath()).getName());
return documentNode.getIdentifier();

节点类型描述:

代码语言:javascript
复制
/**
* Document node
*/
[et:document] > nt:file, mix:title, mix:versionable, mix:shareable
+ * (nt:file) VERSION
- et:tags multiple
- et:role multiple
- et:id (LONG)

我想使用jcr本身来移动内容,而不是让所有的子节点迭代并移动到目标文件夹。

使用带有JCR2.0的Jackrabbit核心2.6.0。

EN

回答 1

Stack Overflow用户

发布于 2014-01-14 18:32:01

不确定您的确切问题是什么,您可以使用Session.moveWorkspace.move来移动节点,我链接的API文档用来解释其中的差异。

确保目标节点定义接受您在其下移动的节点类型,或者使用nt:unstructured目标节点作为起点,因为它接受其下的任何节点类型。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21088138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档