When using Query By Example(QBE) you provide db4o with a template object. db4o will return all of the objects which match all non-default field values. This is done via reflecting all of the fields and building a query expression where all non-default-value fields are combined with AND expressions. Here's a simple example:
1public static void retrievePilotByName(ObjectContainer db) { 2
Pilot proto=new Pilot("Michael Schumacher",0); 3
ObjectSet result=db.get(proto); 4
listResult(result); 5
}
Querying this way has some obvious limitations:
To get around all of these constraints, db4o provides the Native Query (NQ) system.