} finally {session.close();}
}
@Test(dependsOnMethods = "createSchema")
public void tablePerClass_atB_differentConditions() throws Exception {
PersistenceSession session = persistenceManager.createSession();
try {
Map<Class<? extends TpcInheritB>, String> conditionMap = new HashMap<Class<? extends TpcInheritB>, String>();
conditionMap.put(TpcInheritB.class, "id = :id3");
conditionMap.put(TpcInheritB2.class, "id = :id4");
QueryBinder<TpcInheritB> queryBinder = session.createQueryBinder(TpcInheritB.class, null, null, conditionMap);
queryBinder.setInt("id1", 41);
queryBinder.setInt("id2", 42);
queryBinder.setInt("id3", 43);
queryBinder.setInt("id4", 44);
queryBinder.setInt("id5", 45);
List<TpcInheritB> result = session.executeQuery(queryBinder);
Assert.assertNotNull(result);
Assert.assertTrue(result.isEmpty());
// as named query
queryBinder = session.createNamedQueryBinder(TpcInheritB.class, null, "byOther");
queryBinder.setInt("id1", 41);
queryBinder.setInt("id2", 42);
queryBinder.setInt("id3", 43);
queryBinder.setInt("id4", 44);
queryBinder.setInt("id5", 45);
result = session.executeQuery(queryBinder);
Assert.assertNotNull(result);
Assert.assertTrue(result.isEmpty());
// insert data
TpcBaseEntity inst = new TpcBaseEntity();
inst.setId(41);
inst.setVal("one");
session.insert(inst);
inst = new TpcInheritA();
inst.setId(42);
inst.setVal("two");
session.insert(inst);
inst = new TpcInheritB();
inst.setId(43);
inst.setVal("three");
session.insert(inst);
inst = new TpcInheritB2();
inst.setId(44);
inst.setVal("three");
session.insert(inst);
inst = new TpcInheritC();
inst.setId(45);
inst.setVal("three");
session.insert(inst);
// again
queryBinder = session.createQueryBinder(TpcInheritB.class, null, null, conditionMap);
queryBinder.setInt("id1", 41);
queryBinder.setInt("id2", 42);
queryBinder.setInt("id3", 43);
queryBinder.setInt("id4", 44);
queryBinder.setInt("id5", 45);
result = session.executeQuery(queryBinder);
Assert.assertNotNull(result);
Assert.assertEquals(result.size(), 2);
// as named query
queryBinder = session.createNamedQueryBinder(TpcInheritB.class, null, "byOther");
queryBinder.setInt("id1", 41);
queryBinder.setInt("id2", 42);
queryBinder.setInt("id3", 43);
queryBinder.setInt("id4", 44);
queryBinder.setInt("id5", 45);
result = session.executeQuery(queryBinder);
Assert.assertNotNull(result);
Assert.assertEquals(result.size(), 2);
} finally {session.close();}
}