/** * This method purges (removes) all caches associated with a table, if caching is enabled and * a corresponding model is marked cached. * * @param metaModel meta-model whose caches are to purge. */ public void purgeTableCache(MetaModel metaModel) { if(enabled && metaModel.cached()){ cacheManager.flush(new CacheEvent(metaModel.getTableName(), getClass().getName())); } }
private static int update(MetaModel metaModel, String updates, String conditions, Object... params) { StringBuilder sql = new StringBuilder().append("UPDATE ").append(metaModel.getTableName()).append(" SET "); Object[] allParams; if (metaModel.hasAttribute("updated_at")) { sql.append("updated_at = ?, "); allParams = new Object[params.length + 1]; allParams[0] = new Timestamp(System.currentTimeMillis()); System.arraycopy(params, 0, allParams, 1, params.length); } else { allParams = params; } sql.append(updates); if (!blank(conditions)) { sql.append(" WHERE ").append(conditions); } int count = new DB(metaModel.getDbName()).exec(sql.toString(), allParams); if (metaModel.cached()) { Registry.cacheManager().purgeTableCache(metaModel); } return count; }
public static void purgeCache(Class<? extends Model> clazz) { MetaModel metaModel = metaModelOf(clazz); if (metaModel.cached()) { Registry.cacheManager().purgeTableCache(metaModel); } }
/** * Use {@link #purgeTableCache(MetaModel)} whenever you can. * * @param tableName name of table whose caches to purge. */ public void purgeTableCache(String tableName) { if (enabled) { MetaModel mm = Registry.instance().getMetaModel(tableName); if(mm != null && mm.cached()){ cacheManager.flush(new CacheEvent(mm.getTableName(), getClass().getName())); } } }
if (attributeNames.contains(entry.getKey()) ) { if (entry.getValue() instanceof Clob && metaModelLocal.cached()) { String convertedString = Convert.toString(entry.getValue()); if (willAttributeModifyModel(entry.getKey(), convertedString)) {
if (metaModelOf(getClass()).cached()) { Registry.cacheManager().purgeTableCache(metaModelLocal);
done = (id != null); if (metaModel.cached()) { Registry.cacheManager().purgeTableCache(metaModel);
@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(); }
set(metaModelLocal.getVersionColumn(), getLong(metaModelLocal.getVersionColumn()) + 1); if(metaModel.cached()){ Registry.cacheManager().purgeTableCache(metaModel);
String query = metaModelLocal.getDialect().selectStarParametrized(parentTable, parentIdName); if (parentMM.cached()) { P parent = parentClass.cast(QueryCache.instance().getItem(parentTable, query, new Object[]{fkValue})); if (parent != null) { P parent = parentClass.newInstance(); parent.hydrate(results.get(0), true); if (parentMM.cached()) { QueryCache.instance().addItem(parentTable, query, new Object[]{fkValue}, parent);
public static int deleteAll(Class<? extends Model> clazz) { MetaModel metaModel = metaModelOf(clazz); int count = new DB(metaModel.getDbName()).exec("DELETE FROM " + metaModel.getTableName()); if (metaModel.cached()) { Registry.cacheManager().purgeTableCache(metaModel); } purgeEdges(metaModel); return count; }
/** * Returns total count of records based on provided criteria. * * @return total count of records based on provided criteria */ public Long getCount() { if (count == 0L || !suppressCounts) { if (metaModel.cached()) { count = (Long) QueryCache.instance().getItem(metaModel.getTableName(), countQueryFull, params); if (count == null || count == 0) { count = doCount(); QueryCache.instance().addItem(metaModel.getTableName(), countQueryFull, params, count); }else { LogFilter.logQuery(LOGGER, countQueryFull, params, System.currentTimeMillis(), true); } } else { count = doCount(); } return count; } else { return count; } }
public static int delete(Class<? extends Model> clazz, String query, Object... params) { MetaModel metaModel = metaModelOf(clazz); //TODO: refactor this: int count = (params == null || params.length == 0) ? new DB(metaModel.getDbName()).exec("DELETE FROM " + metaModel.getTableName() + " WHERE " + query) : new DB(metaModel.getDbName()).exec("DELETE FROM " + metaModel.getTableName() + " WHERE " + query, params); if (metaModel.cached()) { Registry.cacheManager().purgeTableCache(metaModel); } purgeEdges(metaModel); return count; }
public static Long count(Class<? extends Model> clazz) { MetaModel metaModel = metaModelOf(clazz); String sql = metaModel.getDialect().selectCount(metaModel.getTableName()); Long result; if (metaModel.cached()) { result = (Long) QueryCache.instance().getItem(metaModel.getTableName(), sql, null); if (result == null) { result = Convert.toLong(new DB(metaModel.getDbName()).firstCell(sql)); QueryCache.instance().addItem(metaModel.getTableName(), sql, null, result); }else { LogFilter.logQuery(LOGGER, sql, new Object[]{}, System.currentTimeMillis(), true); } } else { result = Convert.toLong(new DB(metaModel.getDbName()).firstCell(sql)); } return result; }
public static Long count(Class<? extends Model> clazz, String query, Object... params) { MetaModel metaModel = metaModelOf(clazz); String sql = metaModel.getDialect().selectCount(metaModel.getTableName(), query); Long result; if (metaModel.cached()) { result = (Long) QueryCache.instance().getItem(metaModel.getTableName(), sql, params); if (result == null) { result = Convert.toLong(new DB(metaModel.getDbName()).firstCell(sql, params)); QueryCache.instance().addItem(metaModel.getTableName(), sql, params, result); } } else { result = Convert.toLong(new DB(metaModel.getDbName()).firstCell(sql, params)); } return result; }
public static void purgeCache(Class<? extends Model> clazz) { MetaModel metaModel = metaModelOf(clazz); if (metaModel.cached()) { Registry.cacheManager().purgeTableCache(metaModel); } }
public static void purgeCache(Class<? extends Model> clazz) { MetaModel metaModel = metaModelOf(clazz); if (metaModel.cached()) { QueryCache.instance().purgeTableCache(metaModel.getTableName()); } }
public static int deleteAll(Class<? extends Model> clazz) { MetaModel metaModel = metaModelOf(clazz); int count = new DB(metaModel.getDbName()).exec("DELETE FROM " + metaModel.getTableName()); if (metaModel.cached()) { Registry.cacheManager().purgeTableCache(metaModel); } purgeEdges(metaModel); return count; }
public static int deleteAll(Class<? extends Model> clazz) { MetaModel metaModel = metaModelOf(clazz); int count = new DB(metaModel.getDbName()).exec("DELETE FROM " + metaModel.getTableName()); if (metaModel.cached()) { QueryCache.instance().purgeTableCache(metaModel.getTableName()); } purgeEdges(metaModel); return count; }
public static int delete(Class<? extends Model> clazz, String query, Object... params) { MetaModel metaModel = metaModelOf(clazz); //TODO: refactor this: int count = (params == null || params.length == 0) ? new DB(metaModel.getDbName()).exec("DELETE FROM " + metaModel.getTableName() + " WHERE " + query) : new DB(metaModel.getDbName()).exec("DELETE FROM " + metaModel.getTableName() + " WHERE " + query, params); if (metaModel.cached()) { QueryCache.instance().purgeTableCache(metaModel.getTableName()); } purgeEdges(metaModel); return count; }