Hi,

I'm using actually Jackrabbit 2.0 with OCM for persistence. In my current
project I have the following data structure. I have a person which own some
cars.

How can I get all Persons which own a red car and has Peter as firstname?

@Node
public class Person
{
    @Field
    private String firstName;

    @Collection(elementClassName = Car.class, collectionConverter =
DefaultCollectionConverterImpl.class)
    private java.util.Collection cars;

}

@Node
public class Car
{
    @Field
    private String name;

    @Field
    private String color;
}

I tried to use the query manager.

        QueryManager queryManager =
getObjectContentManager().getQueryManager();
        Filter filter = queryManager.createFilter(Person.class);

        filter.addEqualTo("color", "red");
        Query query = queryManager.createQuery(filter);
        ObjectContentManager ocm = this.getObjectContentManager();
        Collection result = ocm.getObjects(query);

Internally the query is changed to (@color = '%red%') and  (
@ocm_classname='com.foo.Person')

Seems like the OCM mapper doesn't support querys over a parent->child
structure. Did I have to change my datastructure or should I use the query
api without OCM. I hope someone know a solution.

Best regards,

Michael

Reply via email to