On Tue, Aug 13, 2019 at 9:11 PM Grant McGovern <grantalexandremcgov...@gmail.com> wrote: > > Hello, > > Copying some bits from the corresponding Stackoverflow post I posted here: > https://stackoverflow.com/questions/57487251/are-nested-array-node-types-valid-in-jackrabbit-jcr > > <https://stackoverflow.com/questions/57487251/are-nested-array-node-types-valid-in-jackrabbit-jcr>. > > Basically, I’m attempting to translate the following data model (business > requirement) into a JCR structure, and add it to an existing parent structure. > > { > "someProperty": [ > [ "some-property-1", "some-property-2" ], > [ "some-property-3", "some-property-4" ] > ] > } > I’m new to the JCR world, but I’ve run into some issues with implementing > this ask. It seems like there’s no way to add a Node object that isn’t named, > which is what the nested subarrays would be in this case. > > There’s some more details on the SO link I posted above, but briefly > speaking, is it possible to store nested arrays in a JCR structure?
In my understanding, JCR 2.0 specification is not supposed to allow to add an unnamed node. [1] So, possible options in JCR structure probably include the following: 1. Each array in a multi-value property in a child node with either same name siblings (e.g, "propnode", "propnode", ...) in Jackrabbit v2 or generated named (e.g, "propnode_1", "propnode_2", ...) nodes in Oak. 2. Generated named properties without child nodes. e.g, @prop1 = [ "value1", "value2", ...], @prop2 = [ "value3", "value4", ...]. 3. Single string property with specific formatted string such as json format. @propinjson = "[ ... ]" #1 looks more organized, but less convenient and less performant if you want to search it - through JCR Query - by the nested node's values. #2 looks less organized, but probably more efficient in query. #3 is problematic in queries with equals or like constraints. Anyway, it will depend on your use case. Mostly on how you want to query those, I guess. Regards, Woonsan [1] https://docs.adobe.com/docs/en/spec/javax.jcr/javadocs/jcr-2.0/javax/jcr/Node.html#addNode(java.lang.String) > > Thanks, > Grant