Oh i forgot to post the error i get using XPath with ocm:
org.apache.jackrabbit.ocm.exception.IncorrectPersistentClassException: Node
type: nt:unstructured has no descriptor.
at
org.apache.jackrabbit.ocm.mapper.impl.AbstractMapperImpl.getClassDescriptorByNodeType(AbstractMapperImpl.java:188)
at
org.apache.jackrabbit.ocm.manager.objectconverter.impl.ObjectConverterImpl.getObject(ObjectConverterImpl.java:293)
at
org.apache.jackrabbit.ocm.manager.impl.ObjectContentManagerImpl.getObjects(ObjectContentManagerImpl.java:622)
-----Ursprüngliche Nachricht-----
Von: Kurz Wolfgang [mailto:[email protected]]
Gesendet: Montag, 26. Januar 2009 14:12
An: [email protected]
Betreff: AW: OCM Search problem
Thats what i thought too.
This is the Query I came up with:
//*[(@" + PROP_MENUID + "= '" + menuId + "')]/parent::*
But since ocm is done with xPath in the background too I thought I could
somehow get this query with ocm too.
-----Ursprüngliche Nachricht-----
Von: Todd Seiber [mailto:[email protected]]
Gesendet: Montag, 26. Januar 2009 14:03
An: [email protected]
Betreff: Re: OCM Search problem
I believe that your only choice will be to use XPATH. The filter would be
for properties but your menuIds are being stored as nodes.
On Mon, Jan 26, 2009 at 4:30 AM, Kurz Wolfgang <[email protected]>wrote:
> Hi everyone,
>
> I am useing OCM to store things in Jackrabbit.
>
> I have a problem building my filter:
>
> My Class is called JCR Content and looks something like this:
>
> @Node
> public class JCRContent implements Serializable {
>
>
> /**
> * Reference to the unique ContentId
> */
> @Field(uuid=true)
> private String uuid;
>
> /**
> * Reference to the Kategories/MenuIds of a Content object
> */
> @Collection(elementClassName = MenuId.class)
> private List<MenuId> menuIds;
>
> /**
> * Path of the Content Entry in Jackrabbit
> */
> @Field(path=true)
> private String path;
> }
>
> Now my problems is that I only want objects with a certain menuId returned.
>
> I tried this but it wont work :
>
> ObjectContentManager ocm = ocmFactory.createObjectContentManager();
>
> org.apache.jackrabbit.ocm.query.QueryManager queryManager =
> ocm.getQueryManager();
>
> Filter filter = queryManager.createFilter(JCRContent.class);
>
> filter.addEqualTo("menuid", "1067");
>
> Can anyone please give me ahint on how I would do this query?
>
> Thx a lot in advance!
>
>
>
--
Todd Seiber
830 Fishing Creek Rd.
New Cumberland, PA 17070
h. 717-938-5778
c. 717-497-1742
e. [email protected]