use of org.jpox.samples.models.company.Employee in project tests by datanucleus.
the class JDOQLTest method testFilterUsingOr.
/**
* Query with a simple filter with one clause ("field == value || field2 == value2")
* @throws Exception
*/
public void testFilterUsingOr() throws Exception {
try {
PersistenceManager pm = pmf.getPersistenceManager();
Transaction tx = pm.currentTransaction();
try {
tx.begin();
Person p1 = new Person();
p1.setPersonNum(1);
p1.setGlobalNum("1");
p1.setFirstName("Bugs");
p1.setLastName("Bunny");
Person p2 = new Person();
p2.setPersonNum(2);
p2.setGlobalNum("2");
p2.setFirstName("Daffy");
p2.setLastName("Duck");
Employee e3 = new Employee();
e3.setFirstName("Barney");
e3.setLastName("Rubble");
e3.setPersonNum(103);
e3.setGlobalNum("103");
e3.setSalary(124.50f);
pm.makePersistent(p1);
pm.makePersistent(p2);
pm.makePersistent(e3);
tx.commit();
} catch (Exception e) {
LOG.error("Exception during persist", e);
fail("Exception thrown when running test " + e.getMessage());
} finally {
if (tx.isActive()) {
tx.rollback();
}
pm.close();
}
pm = pmf.getPersistenceManager();
tx = pm.currentTransaction();
try {
tx.begin();
Query q1 = pm.newQuery("SELECT FROM " + Person.class.getName() + " WHERE firstName == 'Daffy' || personNum < 2");
List<Person> results1 = (List<Person>) q1.execute();
assertEquals(2, results1.size());
Iterator<Person> iter = results1.iterator();
Person p1 = iter.next();
Person p2 = iter.next();
boolean daffy = false;
boolean bugs = false;
if (p1.getPersonNum() == 2) {
assertEquals("Daffy", p1.getFirstName());
assertEquals("Duck", p1.getLastName());
assertEquals(2, p1.getPersonNum());
daffy = true;
} else {
assertEquals("Bugs", p1.getFirstName());
assertEquals("Bunny", p1.getLastName());
assertEquals(1, p1.getPersonNum());
bugs = true;
}
if (p2.getPersonNum() == 2) {
assertEquals("Daffy", p2.getFirstName());
assertEquals("Duck", p2.getLastName());
assertEquals(2, p2.getPersonNum());
daffy = true;
} else {
assertEquals("Bugs", p2.getFirstName());
assertEquals("Bunny", p2.getLastName());
assertEquals(1, p2.getPersonNum());
bugs = true;
}
assertTrue("Bugs not present in results!", bugs);
assertTrue("Daffy not present in results!", daffy);
tx.commit();
} catch (Exception e) {
LOG.error("Exception during query", e);
fail("Exception thrown when running test " + e.getMessage());
} finally {
if (tx.isActive()) {
tx.rollback();
}
pm.close();
}
} finally {
clean(Employee.class);
clean(Person.class);
}
}
use of org.jpox.samples.models.company.Employee in project tests by datanucleus.
the class JDOQLTest method testFilterLessThanNumeric.
/**
* Query with a simple filter with one clause ("field < value")
* @throws Exception
*/
public void testFilterLessThanNumeric() throws Exception {
try {
PersistenceManager pm = pmf.getPersistenceManager();
Transaction tx = pm.currentTransaction();
try {
tx.begin();
Person p1 = new Person();
p1.setPersonNum(1);
p1.setGlobalNum("1");
p1.setFirstName("Bugs");
p1.setLastName("Bunny");
Person p2 = new Person();
p2.setPersonNum(2);
p2.setGlobalNum("2");
p2.setFirstName("Daffy");
p2.setLastName("Duck");
Employee e3 = new Employee();
e3.setFirstName("Barney");
e3.setLastName("Rubble");
e3.setPersonNum(103);
e3.setGlobalNum("103");
e3.setSalary(124.50f);
pm.makePersistent(p1);
pm.makePersistent(p2);
pm.makePersistent(e3);
tx.commit();
} catch (Exception e) {
LOG.error("Exception during persist", e);
fail("Exception thrown when running test " + e.getMessage());
} finally {
if (tx.isActive()) {
tx.rollback();
}
pm.close();
}
pm = pmf.getPersistenceManager();
tx = pm.currentTransaction();
try {
tx.begin();
Query q1 = pm.newQuery("SELECT FROM " + Person.class.getName() + " WHERE personNum < 2");
List<Person> results1 = (List<Person>) q1.execute();
assertEquals(1, results1.size());
Iterator<Person> iter = results1.iterator();
Person p = iter.next();
assertEquals("Bugs", p.getFirstName());
assertEquals("Bunny", p.getLastName());
assertEquals(1, p.getPersonNum());
tx.commit();
} catch (Exception e) {
LOG.error("Exception during query", e);
fail("Exception thrown when running test " + e.getMessage());
} finally {
if (tx.isActive()) {
tx.rollback();
}
pm.close();
}
} finally {
clean(Employee.class);
clean(Person.class);
}
}
use of org.jpox.samples.models.company.Employee in project tests by datanucleus.
the class JDOQLTest method testFilterWithParameter.
/**
* Query with a simple filter with one clause ("field == :param")
* @throws Exception
*/
public void testFilterWithParameter() throws Exception {
try {
PersistenceManager pm = pmf.getPersistenceManager();
Transaction tx = pm.currentTransaction();
try {
tx.begin();
Person p1 = new Person();
p1.setPersonNum(1);
p1.setGlobalNum("1");
p1.setFirstName("Bugs");
p1.setLastName("Bunny");
Person p2 = new Person();
p2.setPersonNum(2);
p2.setGlobalNum("2");
p2.setFirstName("Daffy");
p2.setLastName("Duck");
Employee e3 = new Employee();
e3.setFirstName("Barney");
e3.setLastName("Rubble");
e3.setPersonNum(103);
e3.setGlobalNum("103");
e3.setSalary(124.50f);
pm.makePersistent(p1);
pm.makePersistent(p2);
pm.makePersistent(e3);
tx.commit();
} catch (Exception e) {
LOG.error("Exception during persist", e);
fail("Exception thrown when running test " + e.getMessage());
} finally {
if (tx.isActive()) {
tx.rollback();
}
pm.close();
}
pm = pmf.getPersistenceManager();
tx = pm.currentTransaction();
try {
tx.begin();
// One param, positional
Query q1 = pm.newQuery("SELECT FROM " + Person.class.getName() + " WHERE firstName == :name");
List<Person> results1 = (List<Person>) q1.execute("Daffy");
assertEquals(1, results1.size());
Iterator<Person> iter1 = results1.iterator();
Person p1 = iter1.next();
assertEquals("Daffy", p1.getFirstName());
assertEquals("Duck", p1.getLastName());
assertEquals(2, p1.getPersonNum());
// Two params, named
Query q2 = pm.newQuery("SELECT FROM " + Person.class.getName() + " WHERE firstName == :name && lastName == :surname");
Map params = new HashMap();
params.put("name", "Daffy");
params.put("surname", "Duck");
List<Person> results2 = (List<Person>) q2.executeWithMap(params);
assertEquals(1, results2.size());
Iterator<Person> iter2 = results2.iterator();
Person p2 = iter2.next();
assertEquals("Daffy", p2.getFirstName());
assertEquals("Duck", p2.getLastName());
assertEquals(2, p2.getPersonNum());
tx.commit();
} catch (Exception e) {
LOG.error("Exception during query", e);
fail("Exception thrown when running test " + e.getMessage());
} finally {
if (tx.isActive()) {
tx.rollback();
}
pm.close();
}
} finally {
clean(Employee.class);
clean(Person.class);
}
}
use of org.jpox.samples.models.company.Employee in project tests by datanucleus.
the class JDOQLTest method testFilterUsingAnd.
/**
* Query with a simple filter with one clause ("field == value && field2 < value2")
* @throws Exception
*/
public void testFilterUsingAnd() throws Exception {
try {
PersistenceManager pm = pmf.getPersistenceManager();
Transaction tx = pm.currentTransaction();
try {
tx.begin();
Person p1 = new Person();
p1.setPersonNum(1);
p1.setGlobalNum("1");
p1.setFirstName("Bugs");
p1.setLastName("Bunny");
Person p2 = new Person();
p2.setPersonNum(2);
p2.setGlobalNum("2");
p2.setFirstName("Daffy");
p2.setLastName("Duck");
Employee e3 = new Employee();
e3.setFirstName("Barney");
e3.setLastName("Rubble");
e3.setPersonNum(103);
e3.setGlobalNum("103");
e3.setSalary(124.50f);
pm.makePersistent(p1);
pm.makePersistent(p2);
pm.makePersistent(e3);
tx.commit();
} catch (Exception e) {
LOG.error("Exception during persist", e);
fail("Exception thrown when running test " + e.getMessage());
} finally {
if (tx.isActive()) {
tx.rollback();
}
pm.close();
}
pm = pmf.getPersistenceManager();
tx = pm.currentTransaction();
try {
tx.begin();
Query q1 = pm.newQuery("SELECT FROM " + Person.class.getName() + " WHERE firstName == 'Daffy' && personNum < 3");
List<Person> results1 = (List<Person>) q1.execute();
assertEquals(1, results1.size());
Iterator<Person> iter = results1.iterator();
Person p = iter.next();
assertEquals("Daffy", p.getFirstName());
assertEquals("Duck", p.getLastName());
assertEquals(2, p.getPersonNum());
tx.commit();
} catch (Exception e) {
LOG.error("Exception during query", e);
fail("Exception thrown when running test " + e.getMessage());
} finally {
if (tx.isActive()) {
tx.rollback();
}
pm.close();
}
} finally {
clean(Employee.class);
clean(Person.class);
}
}
use of org.jpox.samples.models.company.Employee in project tests by datanucleus.
the class JDOQLTest method testFilterWithMethod.
/**
* Query with a simple filter with a method call (not possible totally in-datastore)
* @throws Exception
*/
public void testFilterWithMethod() throws Exception {
try {
PersistenceManager pm = pmf.getPersistenceManager();
Transaction tx = pm.currentTransaction();
try {
tx.begin();
Person p1 = new Person();
p1.setPersonNum(1);
p1.setGlobalNum("1");
p1.setFirstName("Bugs");
p1.setLastName("Bunny");
Person p2 = new Person();
p2.setPersonNum(2);
p2.setGlobalNum("2");
p2.setFirstName("Daffy");
p2.setLastName("Duck");
Employee e3 = new Employee();
e3.setFirstName("Barney");
e3.setLastName("Rubble");
e3.setPersonNum(103);
e3.setGlobalNum("103");
e3.setSalary(124.50f);
pm.makePersistent(p1);
pm.makePersistent(p2);
pm.makePersistent(e3);
tx.commit();
} catch (Exception e) {
LOG.error("Exception during persist", e);
fail("Exception thrown when running test " + e.getMessage());
} finally {
if (tx.isActive()) {
tx.rollback();
}
pm.close();
}
pm = pmf.getPersistenceManager();
tx = pm.currentTransaction();
try {
tx.begin();
Query q1 = pm.newQuery("SELECT FROM " + Person.class.getName() + " WHERE firstName.startsWith('D')");
List<Person> results1 = (List<Person>) q1.execute();
assertEquals(1, results1.size());
Iterator<Person> iter = results1.iterator();
Person p = iter.next();
assertEquals("Daffy", p.getFirstName());
assertEquals("Duck", p.getLastName());
assertEquals(2, p.getPersonNum());
tx.commit();
} catch (Exception e) {
LOG.error("Exception during 1-N retrieve and check", e);
fail("Exception thrown when running test " + e.getMessage());
} finally {
if (tx.isActive()) {
tx.rollback();
}
pm.close();
}
} finally {
clean(Employee.class);
clean(Person.class);
}
}
Aggregations