public void testMyObjectSelectByExampleComplexLike() {
MyObjectDAO dao = getMyObjectDAO();
try {
MyObject record = new MyObject();
FirstName fn = new FirstName();
fn.setValue("Fred");
record.setFirstname(fn);
record.setLastname("Flintstone");
record.setId1(1);
record.setId2(1);
dao.insertMyObject(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Wilma");
record.setFirstname(fn);
record.setLastname("Flintstone");
record.setId1(1);
record.setId2(2);
dao.insertMyObject(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Pebbles");
record.setFirstname(fn);
record.setLastname("Flintstone");
record.setId1(1);
record.setId2(3);
dao.insertMyObject(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Barney");
record.setFirstname(fn);
record.setLastname("Rubble");
record.setId1(2);
record.setId2(1);
dao.insertMyObject(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Betty");
record.setFirstname(fn);
record.setLastname("Rubble");
record.setId1(2);
record.setId2(2);
dao.insertMyObject(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Bamm Bamm");
record.setFirstname(fn);
record.setLastname("Rubble");
record.setId1(2);
record.setId2(3);
dao.insertMyObject(record);
MyObjectCriteria example = new MyObjectCriteria();
fn = new FirstName();
fn.setValue("B%");
example.createCriteria().andFirstnameLike(fn).andId2EqualTo(3);
fn = new FirstName();
fn.setValue("W%");
example.or(example.createCriteria().andFirstnameLike(fn));
example.setOrderByClause("ID1, ID2");
List<MyObject> answer = dao.selectMyObjectByExample(example);
assertEquals(2, answer.size());