public <T> T find() { return find(null, autoClose, null); } protected <T> T find(final Class[] types, final boolean close, ResultSet resultSet) {
Girl girl = q.find(Girl.class); checkGirl1(girl); assertTrue(q.isActive()); IdName idName = q.find(IdName.class); assertNotNull(idName); assertEquals(1, idName.id); q.find(); // this will fail since no entity is registered! fail("error"); } catch (DbOomException doex) { girl = q.find(); checkGirl1(girl); assertEquals(7, g2.id.intValue()); g2 = dbOom.entities().findByColumn(Girl2.class, "name", "Gwen").query().find(Girl2.class); assertEquals("Gwen", g2.name); assertNull(g2.speciality);
public <T> T find(final Class... types) { return find(types, autoClose, null); } public <T> T find() {
/** * Finds generated columns. */ public Object findGeneratedColumns(final Class... types) { return find(types, false, getGeneratedColumns()); }
/** * Finds generated key column of given type. */ public <T> T findGeneratedKey(final Class<T> type) { return find(new Class[] {type}, false, getGeneratedColumns()); }
/** * Finds one entity for given criteria. */ @SuppressWarnings({"unchecked"}) public <E> E findOne(final Object criteria) { return (E) query(dbOom.entities().find(criteria)).autoClose().find(criteria.getClass()); }
/** * Finds single entity by matching property. */ public <E> E findOneByProperty(final Class<E> entityType, final String name, final Object value) { return query(dbOom.entities().findByColumn(entityType, name, value)).autoClose().find(entityType); }
/** * Finds single entity by its id. */ public <E, ID> E findById(final Class<E> entityType, final ID id) { return query(dbOom.entities().findById(entityType, id)).autoClose().find(entityType); }
@Test void testCustomName() { DbOomQuery dbOomQuery = sql("select $C{u.*} from $T{User u}").query(); User user = dbOomQuery.find(User.class); assertEquals(1, user.userId); assertEquals("Gandalf", user.name); // select custom value into target entity dbOomQuery = sql("select $C{u.userId}, 'Sauron' as u.name from $T{User u}").query(); user = dbOomQuery.find(User.class); assertEquals(1, user.userId); assertEquals("Sauron", user.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); }
@Test void testExtend() { DbOomQuery dbOomQuery = sql("select $C{w.*}, $C{w.user:u.*} from $T{Wizard w} inner join $T{User u} on $w.wizardId=$u.userId").query(); Wizard wizard = dbOomQuery.find(/*Wizard.class, User.class*/); assertNotNull(wizard); assertEquals(1, wizard.wizardId); assertEquals(7, wizard.level); assertEquals("Gandalf", wizard.getName()); // all in one class! dbOomQuery = sql("select $C{w.%}, $C{u.*} from $T{Wizard w} inner join $T{User u} on $w.wizardId=$u.userId").query(); WizUser wizUser = dbOomQuery.find(WizUser.class); assertNotNull(wizUser); //assertEquals(1, wizUser.wizardId); assertEquals(7, wizUser.level); assertEquals(1, wizUser.userId); assertEquals("Gandalf", wizUser.name); }
Girl girl = q.find(Girl.class); checkGirl1(girl); assertTrue(q.isActive()); girl = q.find(new QueryMapper<Girl>() { @Override public Girl process(ResultSet resultSet) throws SQLException { IdName idName = q.find(IdName.class); assertNotNull(idName); assertEquals(1, idName.id); girl = q.find(Girl.class); checkGirl1(girl); BadBoy badBoy = q.find(BadBoy.class); checkBoy(badBoy); badBoy = q.find(); checkBoy(badBoy); badBoy = q.find(BadBoy.class); checkBoy(badBoy); badBoy = q.find(); checkBoy(badBoy); girl = q.find(Girl.class); checkGirl3(girl);
Object[] result = dbOomQuery.find(Boy2.class, Girl.class); boy2 = dbOomQuery.find(Boy2.class, Girl.class); boy2 = dbOomQuery.find(Boy2.class, Girl.class, Integer.class); boy2 = dbOomQuery.find(Boy2.class, Girl.class); boy2 = dbOomQuery.find(Boy2.class, Girl.class, Integer.class); boy2 = dbOomQuery.find(Boy2.class, Girl.class);
/** * Finds generated columns. */ public Object findGeneratedColumns(final Class... types) { return find(types, false, getGeneratedColumns()); }
/** * Finds one entity for given criteria. */ @SuppressWarnings({"unchecked"}) public <E> E findOne(final Object criteria) { return (E) query(dbOom.entities().find(criteria)).autoClose().find(criteria.getClass()); }
/** * Finds single entity by matching property. */ public <E> E findOneByProperty(final Class<E> entityType, final String name, final Object value) { return query(dbOom.entities().findByColumn(entityType, name, value)).autoClose().find(entityType); }
/** * Finds single entity by its id. */ public <E, ID> E findById(final Class<E> entityType, final ID id) { return query(dbOom.entities().findById(entityType, id)).autoClose().find(entityType); }