String[] joinHints = sqlgen.getJoinHints(); if (joinHints != null) { withHints(joinHints);
@Test void testMapRows2Types_entityAware_Set() { DbOomQuery q = DbOomQuery.query(sql(TSQL)); Set<Girl2> set1 = q.withHints("g", "g.boys").entityAwareMode(true).listSet(Girl2.class, Boy.class); assertEquals(2, set1.size()); for (Girl2 girl : set1) { if (girl.id.equals(1)) { assertEquals(1, girl.getBoys().size()); } if (girl.id.equals(2)) { assertEquals(2, girl.getBoys().size()); } } }
@Test void testMapRows2Types_entityAware_List() { DbOomQuery q = DbOomQuery.query(sql(TSQL)); List<Girl2> result2 = q.withHints("g", "g.boys").entityAwareMode(true).list(1, Girl2.class, Boy.class); assertEquals(1, result2.size()); Girl2 girl1 = result2.get(0); assertNotNull(girl1.getBoys()); assertEquals(2, girl1.getBoys().size()); }
@Test void testMapRows2Types_entityAware_Max() { DbOomQuery q = DbOomQuery.query(sql(TSQL)); Set<Girl2> set1 = q.withHints("g", "g.boys").entityAwareMode(true).listSet(1, Girl2.class, Boy.class); assertEquals(1, set1.size()); for (Girl2 girl : set1) { if (girl.id.equals(2)) { assertEquals(2, girl.getBoys().size()); } else { fail("error"); } } }
@Test void testMapRows2Types_entityAware_Set_LEFT() { DbOomQuery q = DbOomQuery.query(sql(TSQL_LEFT)); Set<Girl2> set1 = q.withHints("g", "g.boys").entityAwareMode(true).listSet(Girl2.class, Boy.class); assertEquals(3, set1.size()); for (Girl2 girl : set1) { if (girl.id.equals(1)) { assertEquals(1, girl.getBoys().size()); } if (girl.id.equals(2)) { assertEquals(2, girl.getBoys().size()); } if (girl.id.equals(3)) { assertNull(girl.getBoys()); } } }
@Test void testMapRows2Types_entityAware_Iterator() { DbOomQuery q = DbOomQuery.query(sql(TSQL)); Iterator<Girl2> iterator = q.withHints("g", "g.boys").entityAwareMode(true).iterate(Girl2.class, Boy.class); assertTrue(iterator.hasNext()); assertTrue(iterator.hasNext()); assertTrue(iterator.hasNext()); Girl2 girl1 = iterator.next(); assertNotNull(girl1.getBoys()); assertEquals(2, girl1.getBoys().size()); assertTrue(iterator.hasNext()); Girl2 girl3 = iterator.next(); assertNotNull(girl3.getBoys()); assertEquals(1, girl3.getBoys().size()); assertFalse(iterator.hasNext()); }
@Test void testMapRows2Types_entityAware() { DbOomQuery q = DbOomQuery.query(sql(TSQL)); List<Girl2> result2 = q.withHints("g", "g.boys").entityAwareMode(true).list(Girl2.class, Boy.class); assertEquals(2, result2.size()); Girl2 girl1 = result2.get(0); Girl2 girl3 = result2.get(1); assertNotNull(girl1.getBoys()); assertEquals(2, girl1.getBoys().size()); assertNotNull(girl3.getBoys()); assertEquals(1, girl3.getBoys().size()); }
@Test void testMapRows2Types_entityAware_List_LEFT() { DbOomQuery q = DbOomQuery.query(sql(TSQL_LEFT)); List<Girl2> result2 = q.withHints("g", "g.boys").entityAwareMode(true).list(2, Girl2.class, Boy.class); assertEquals(2, result2.size()); Girl2 girl0 = result2.get(0); Girl2 girl1 = result2.get(1); assertNull(girl0.getBoys()); assertNotNull(girl1.getBoys()); assertEquals(2, girl1.getBoys().size()); }
@Test void testMapRows2Types_entityAware_Max_LEFT() { DbOomQuery q = DbOomQuery.query(sql(TSQL_LEFT)); Set<Girl2> set1 = q.withHints("g", "g.boys").entityAwareMode(true).listSet(2, Girl2.class, Boy.class); assertEquals(2, set1.size()); for (Girl2 girl : set1) { if (girl.id.equals(3)) { assertNull(girl.getBoys()); } else if (girl.id.equals(2)) { assertEquals(2, girl.getBoys().size()); } else { fail("error"); } } }
@Test void testMapRows2Types_entityAware_Iterator_LEFT() { DbOomQuery q = DbOomQuery.query(sql(TSQL_LEFT)); Iterator<Girl2> iterator = q.withHints("g", "g.boys").entityAwareMode(true).iterate(Girl2.class, Boy.class); assertTrue(iterator.hasNext()); Girl2 girl0 = iterator.next(); assertNull(girl0.getBoys()); Girl2 girl1 = iterator.next(); assertNotNull(girl1.getBoys()); assertEquals(2, girl1.getBoys().size()); assertTrue(iterator.hasNext()); Girl2 girl3 = iterator.next(); assertNotNull(girl3.getBoys()); assertEquals(1, girl3.getBoys().size()); assertFalse(iterator.hasNext()); }
@Test void testMapRows2Types_entityAware_LEFT() { DbOomQuery q = DbOomQuery.query(sql(TSQL_LEFT)); List<Girl2> result2 = q.withHints("g", "g.boys").entityAwareMode(true).list(Girl2.class, Boy.class); assertEquals(3, result2.size()); Girl2 girl0 = result2.get(0); Girl2 girl1 = result2.get(1); Girl2 girl3 = result2.get(2); assertNull(girl0.getBoys()); assertNotNull(girl1.getBoys()); assertEquals(2, girl1.getBoys().size()); assertNotNull(girl3.getBoys()); assertEquals(1, girl3.getBoys().size()); }
@Test void testMapRows2Types_useCache_useHints_1perRow_LEFT() { DbOomQuery q = DbOomQuery.query(sql(TSQL_LEFT)); List<Girl2> result2 = q.withHints("g", "g.boys").cacheEntities(true).list(Girl2.class, Boy.class); assertEquals(4, result2.size()); Girl2 girl0 = result2.get(0); Girl2 girl1 = result2.get(1); Girl2 girl2 = result2.get(2); Girl2 girl3 = result2.get(3); assertTrue(girl1.equals(girl2)); assertTrue(girl1 == girl2); assertFalse(girl3 == girl1); assertNull(girl0.getBoys()); assertNotNull(girl1.getBoys()); assertEquals(2, girl1.getBoys().size()); assertNotNull(girl3.getBoys()); assertEquals(1, girl3.getBoys().size()); assertEquals("Hugo", girl3.getBoys().get(0).name); }
@Test void testMapRows2Types_useCache_useHints_1perRow() { DbOomQuery q = DbOomQuery.query(sql(TSQL)); List<Girl2> result2 = q.withHints("g", "g.boys").cacheEntities(true).list(Girl2.class, Boy.class); assertEquals(3, result2.size()); Girl2 girl1 = result2.get(0); Girl2 girl2 = result2.get(1); Girl2 girl3 = result2.get(2); assertTrue(girl1.equals(girl2)); assertTrue(girl1 == girl2); assertFalse(girl3 == girl1); assertNotNull(girl1.getBoys()); assertEquals(2, girl1.getBoys().size()); assertNotNull(girl3.getBoys()); assertEquals(1, girl3.getBoys().size()); assertEquals("Hugo", girl3.getBoys().get(0).name); }
@Test void testMapRows2Types_entityAware_Find() { DbOomQuery q = DbOomQuery.query(sql(TSQL)); Girl2 girl1 = q.withHints("g", "g.boys").entityAwareMode(true).find(Girl2.class, Boy.class); assertNotNull(girl1.getBoys()); assertEquals(2, girl1.getBoys().size()); }
@Test void testMapRows2Types_entityAware_Find_LEFT() { DbOomQuery q = DbOomQuery.query(sql(TSQL_LEFT)); Girl2 girl0 = q.withHints("g", "g.boys").entityAwareMode(true).find(Girl2.class, Boy.class); assertNull(girl0.getBoys()); }
@Test void testAdditionalColumn() { // default DbOomQuery dbOomQuery = sql("select $C{u.*}, 243 from $T{User u}").query(); Object[] object = dbOomQuery.find(User.class, Integer.class); assertEquals(2, object.length); User user = (User) object[0]; assertEquals(1, user.userId); assertEquals("Gandalf", user.name); assertEquals(0, user.exp); assertEquals(243, ((Integer) object[1]).intValue()); // with manual hints! dbOomQuery = sql("select $C{u.*}, 243 as exp from $T{User u}").query(); user = dbOomQuery.withHints("u", "u.exp").find(User.class, Integer.class); assertEquals(1, user.userId); assertEquals("Gandalf", user.name); assertEquals(243, user.exp); // with text hints! dbOomQuery = sql("select $C{u.*}, 243 as $C{u.exp:.exp} from $T{User u}").query(); user = dbOomQuery.find(User.class, Integer.class); assertEquals(1, user.userId); assertEquals("Gandalf", user.name); assertEquals(243, user.exp); }
dbOomQuery.withHints("boy", "boy.girlAlt", "boy.totalGirls"); boy2 = dbOomQuery.find(Boy2.class, Girl.class, Integer.class);
String[] joinHints = sqlgen.getJoinHints(); if (joinHints != null) { withHints(joinHints);
withHints(joinHints);