{
deleteData(Person.class);
createPersons();
// 3. Get a list of some articles
Transaction tx = odmg.newTransaction();
tx.begin();
OQLQuery query = odmg.newOQLQuery();
String sql = "select allPersons from " + Person.class.getName() + " where id != $1 and id > $2";
query.create(sql);
query.bind(new Integer(5));
query.bind(new Integer(id_filter));
Collection allPersons = (Collection) query.execute();
// Iterator over the restricted articles objects
Iterator it = allPersons.iterator();
while (it.hasNext())
{
/**
* just make sure it's a string.
*/
Object result = it.next();
Person value = (Person) result;
if (value.getId() <= id_filter || value.getId()==5)
fail("oql didn't filter, got id (" + value.getId() + " where it should have been over "
+ id_filter + " and not 5");
}
tx.commit();
// now we try to reuse OQLQuery
tx.begin();
query.bind(new Integer(8));
query.bind(new Integer(id_filter));
allPersons = (Collection) query.execute();
// Iterator over the restricted articles objects
it = allPersons.iterator();
while (it.hasNext())
{
/**
* just make sure it's a string.
*/
Object result = it.next();
Person value = (Person) result;
if (value.getId() <= id_filter || value.getId()==8)
fail("oql didn't filter, got id (" + value.getId() + " where it should have been over "
+ id_filter + " and not 8");
}
// reuse OQLQuery within same tx
query.bind(new Integer(9));
query.bind(new Integer(id_filter));
allPersons = (Collection) query.execute();
// Iterator over the restricted articles objects
it = allPersons.iterator();
while (it.hasNext())
{
/**
* just make sure it's a string.
*/
Object result = it.next();
Person value = (Person) result;
if (value.getId() <= id_filter || value.getId()==9)
fail("oql didn't filter, got id (" + value.getId() + " where it should have been over "
+ id_filter + " and not 9");
}
tx.commit();
}