如何在cq中将属性从源节点复制到目标节点

  • 本文关键字:节点 复制 目标 属性 cq aem
  • 更新时间 :
  • 英文 :


我想在另一个目标节点中使用getProperties()和setProperty从源节点获取一些属性。我如何检查财产是否受到保护。就好像我复制了目标中的所有属性一样,它给了我ConstraintViolationException

您需要获得属性的定义:

PropertyDefinition propDefinition = node.getProperty("/yourprop").getDefinition();

在定义上,您可以调用isProtected():

Boolean isPropertyProtected = propDefinition.isProtected();

或者直接内联:

node.getProperty("/yourprop").getDefinition().isProtected();

为了进一步阅读,我建议:http://www.day.com/specs/jcr/2.0/16_Access_Control_Management.html;第16.3.12章与受保护属性的相互作用

以及关于节点类型的JCR文档:http://jackrabbit.apache.org/jcr/node-types.html

这可能是因为您正在尝试复制包括cq:primaryType在内的所有属性。如果您在crx中看到,这些基本属性是不可编辑的。

对于复制,您可以获取特定特性并设置特定特性,而不是复制和粘贴所有特性。

最新更新