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

Reply via email to