}
public void complexQuery(int size, Object ob, String filter, Class c) {
// PersistenceManager pm = getPM();
Broker broker = getBrokerFactory().newBroker();
broker.setIgnoreChanges(false);
broker.begin();
broker.persist(ob, null);
// test in-memory
// assertSize (size, pm.newQuery (c, filter));
broker.commit();
broker.begin();
// test against database
//OpenJPAQuery q = pm.createQuery("SELECT o FROM " +
//c.getSimpleName() + "o WHERE o." + filter);
String qstrng =
"SELECT o FROM " + c.getSimpleName() + " o WHERE o." + filter;
assertSize(size,
(List) broker.newQuery(JPQLParser.LANG_JPQL, c, qstrng).execute());
broker.commit();
broker.close();
broker = getBrokerFactory().newBroker();
broker.begin();
// test again against a new PM, for good measure
assertSize(size,
(List) broker.newQuery(JPQLParser.LANG_JPQL, c, qstrng).execute());
broker.rollback();
broker.close();
}