为Jackrabbit节点添加相同的名称限制

时间:2014-12-10 13:00:28

标签: jackrabbit jcr

我想创建一个对同名兄弟有限制的节点。我已经使用了CND文件。

[cog:example]
- * (undefined) multiple
- * (undefined)
- cog:name (string)
= 'Example Node Name'
mandatory 
- cog:description (string)
= 'Description Goes Here'
autocreated

然后当我测试添加节点时:

Node root = session.getRootNode();
Node projects = root.addNode("projects");
Node exampleNode = projects.addNode("example 1","cog:example");
exampleNode.setProperty("cog:name", "example name");
session.save();

Node exampleNode2 = projects.addNode("example 1","cog:example");
exampleNode2.setProperty("cog:name", "example name");
session.save();

dumpToConsole(projects);

添加第二个节点没有抛出ItemExistsException异常,转储节点显示第二个节点(示例1 [2])。您能否告诉我如何制定限制以便不允许使用相同的名称节点?

1 个答案:

答案 0 :(得分:1)

您通过父级设置相同名称的兄弟限制。所以你可以添加例如。

[nt:parent]
  + * (cog:example)

然后设置projects

的类型
Node projects = root.addNode("projects", "nt:parent");

适合我。

相关问题