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