/** * Finds list of entities matching given criteria. */ @SuppressWarnings({"unchecked"}) public <E> List<E> find(final Object criteria) { return query(dbOom.entities().find(criteria)).autoClose().list(criteria.getClass()); }
/** * 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 related entity. */ public <E> List<E> findRelated(final Class<E> target, final Object source) { return query(dbOom.entities().findForeign(target, source)).autoClose().list(target); }
/** * List all entities. */ public <E> List<E> listAll(final Class<E> target) { return query(dbOom.entities().from(target)).autoClose().list(target); }
/** * Counts number of all entities. */ public long count(final Class entityType) { return query(dbOom.entities().count(entityType)).autoClose().executeCount(); }
/** * 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); }
/** * Decreases a property. */ public <ID> void decreaseProperty(final Class entityType, final ID id, final String name, final Number delta) { query(dbOom.entities().increaseColumn(entityType, id, name, delta, false)).autoClose().executeUpdate(); }
/** * Finds list of entities matching given criteria. */ public <E> List<E> find(final Class<E> entityType, final Object criteria) { return query(dbOom.entities().find(entityType, criteria)).autoClose().list(entityType); }
/** * Deleted single entity by its id. */ public <ID> void deleteById(final Class entityType, final ID id) { query(dbOom.entities().deleteById(entityType, id)).autoClose().executeUpdate(); }
/** * Simply inserts object into the database. */ public void save(final Object entity) { final DbQuery q = query(dbOom.entities().insert(entity)); q.autoClose().executeUpdate(); }
/** * Updates single entity. */ public void update(final Object entity) { query(dbOom.entities().updateAll(entity)).autoClose().executeUpdate(); }
/** * 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); }
/** * Increases a property. */ public <ID> void increaseProperty(final Class entityType, final ID id, final String name, final Number delta) { query(dbOom.entities().increaseColumn(entityType, id, name, delta, true)).autoClose().executeUpdate(); }
/** * Updates single property in database and in the bean. */ public <E> E updateProperty(final E entity, final String name, final Object newValue) { query(dbOom.entities().updateColumn(entity, name, newValue)).autoClose().executeUpdate(); BeanUtil.declared.setProperty(entity, name, newValue); return entity; }
/** * Updates property in the database by storing the current property value. */ public <E> E updateProperty(final E entity, final String name) { Object value = BeanUtil.declared.getProperty(entity, name); query(dbOom.entities().updateColumn(entity, name, value)).autoClose().executeUpdate(); return entity; }
@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() { 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_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_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()); }