/** * This method exists to force immediate load from DB. Example; * <code> Person.find("name = ?", "Smith").load();</code>. * It is not possible to call other methods after load(). The load() method should be the last to be called in the chain: * <code> Person.find("name = ?", "Smith").limit(10).load();</code>. * This: will generate exception: <code> Person.find("name = ?", "Smith").load().limit();</code>. * * @return fully loaded list. */ //TODO: write test, and also test for exception. public <E extends Model> LazyList<E> load() { if (hydrated()) { throw new DBException("load() must be the last on the chain of methods"); } hydrate(); return (LazyList<E>) this; }
@Override protected void hydrate() { if (hydrated()) { return; } String sql= toSql(false); if(metaModel.cached()){ List<T> cached = (List<T>) QueryCache.instance().getItem(metaModel.getTableName(), sql, params); if(cached != null){ delegate = cached; LogFilter.logQuery(LOGGER, sql, params, System.currentTimeMillis(), true); return; } } delegate = new ArrayList<>(); long start = System.currentTimeMillis(); new DB(metaModel.getDbName()).find(sql, params).with(new RowListenerAdapter() { @Override public void onNext(Map<String, Object> map) { delegate.add(ModelDelegate.<T>instance(map, metaModel)); } }); LogFilter.logQuery(LOGGER, sql, params, start, false); if(metaModel.cached()){ delegate = Collections.unmodifiableList(delegate); QueryCache.instance().addItem(metaModel.getTableName(), sql, params, delegate); } processIncludes(); }
/** * This method exists to force immediate load from DB. Example; * <code> Person.find("name = ?", "Smith").load();</code>. * It is not possible to call other methods after load(). The load() method should be the last to be called in the chain: * <code> Person.find("name = ?", "Smith").limit(10).load();</code>. * This: will generate exception: <code> Person.find("name = ?", "Smith").load().limit();</code>. * * @return fully loaded list. */ //TODO: write test, and also test for exception. public <E extends Model> LazyList<E> load() { if (hydrated()) { throw new DBException("load() must be the last on the chain of methods"); } hydrate(); return (LazyList<E>) this; }
/** * This method exists to force immediate load from DB. Example; * <code> Person.find("name = ?", "Smith").load();</code>. * It is not possible to call other methods after load(). The load() method should be the last to be called in the chain: * <code> Person.find("name = ?", "Smith").limit(10).load();</code>. * This: will generate exception: <code> Person.find("name = ?", "Smith").load().limit();</code>. * * @return fully loaded list. */ //TODO: write test, and also test for exception. public <E extends Model> LazyList<E> load() { if (hydrated()) { throw new DBException("load() must be the last on the chain of methods"); } hydrate(); return (LazyList<E>) this; }
@Override protected void hydrate() { if (hydrated()) { return; } String sql= toSql(false); if(metaModel.cached()){ List<T> cached = (List<T>) QueryCache.instance().getItem(metaModel.getTableName(), sql, params); if(cached != null){ delegate = cached; LogFilter.logQuery(LOGGER, sql, params, System.currentTimeMillis(), true); return; } } delegate = new ArrayList<>(); long start = System.currentTimeMillis(); new DB(metaModel.getDbName()).find(sql, params).with(new RowListenerAdapter() { @Override public void onNext(Map<String, Object> map) { delegate.add(ModelDelegate.<T>instance(map, metaModel)); } }); LogFilter.logQuery(LOGGER, sql, params, start, false); if(metaModel.cached()){ delegate = Collections.unmodifiableList(delegate); QueryCache.instance().addItem(metaModel.getTableName(), sql, params, delegate); } processIncludes(); }
@Override protected void hydrate() { if (hydrated()) { return; } String sql= toSql(false); if(metaModel.cached()){ List<T> cached = (List<T>) QueryCache.instance().getItem(metaModel.getTableName(), sql, params); if(cached != null){ delegate = cached; return; } } delegate = new ArrayList<T>(); long start = System.currentTimeMillis(); new DB(metaModel.getDbName()).find(sql, params).with(new RowListenerAdapter() { @Override public void onNext(Map<String, Object> map) { delegate.add(ModelDelegate.<T>instance(map, metaModel)); } }); LogFilter.logQuery(logger, sql, params, start); if(metaModel.cached()){ delegate = Collections.unmodifiableList(delegate); QueryCache.instance().addItem(metaModel.getTableName(), sql, params, delegate); } processIncludes(); }