/** * Executes DML. Use it for inserts and updates. * * @param query raw DML. * @return number of rows afected by query. */ public static int exec(String query){ return new DB(DB.DEFAULT_NAME).exec(query); }
String query = metaModel.getDialect().insertParametrized(metaModel, columns, containsId); if (containsId || getCompositeKeys() != null) { compositeKeyPersisted = done = (1 == new DB(metaModel.getDbName()).exec(query, values.toArray())); } else { Object id = new DB(metaModel.getDbName()).execInsert(query, metaModel.getIdName(), values.toArray());
/** * Executes parametrized DML - will contain question marks as placeholders. * * @param query query to execute - will contain question marks as placeholders. * @param params query parameters. * @return number of records affected. */ public static int exec(String query, Object ... params){ return new DB(DB.DEFAULT_NAME).exec(query, params); }
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; }
/** * Deletes all records from a join table related to this model. * * @param association association to another table. */ private void deleteManyToManyLinks(Many2ManyAssociation association){ String join = association.getJoin(); String sourceFK = association.getSourceFkName(); new DB(metaModelLocal.getDbName()).exec("DELETE FROM " + join + " WHERE " + sourceFK + " = ?", getId()); }
values[i] = get(compositeKeys[i]); result = new DB(metaModelLocal.getDbName()).exec(query.toString(), values); } else { StringBuilder query = new StringBuilder("DELETE FROM ").append(metaModelLocal.getTableName()).append(" WHERE ").append(getIdName()).append(" = ?"); result = new DB(metaModelLocal.getDbName()).exec(query.toString(), values.toArray());
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; }
return 1; } else if (metaModel.hasAssociation(child.getClass(), Many2ManyAssociation.class)) { return new DB(metaModel.getDbName()).exec(metaModel.getDialect().deleteManyToManyAssociation( metaModel.getAssociationForTarget(child.getClass(), Many2ManyAssociation.class)), getId(), child.getId());
values.add(get(metaModelLocal.getVersionColumn())); int updated = new DB(metaModel.getDbName()).exec(query.toString(), values.toArray()); if(metaModel.isVersioned() && updated == 0){ throw new StaleModelException("Failed to update record for model '" + getClass() +
/** * Deletes immediate polymorphic children */ private void deletePolymorphicChildrenShallow(OneToManyPolymorphicAssociation association){ String targetTable = metaModelOf(association.getTargetClass()).getTableName(); String parentType = association.getTypeLabel(); new DB(metaModelLocal.getDbName()).exec("DELETE FROM " + targetTable + " WHERE parent_id = ? AND parent_type = ?", getId(), parentType); }
/** * Deletes immediate children. */ private void deleteOne2ManyChildrenShallow(OneToManyAssociation association){ String targetTable = metaModelOf(association.getTargetClass()).getTableName(); new DB(metaModelLocal.getDbName()).exec("DELETE FROM " + targetTable + " WHERE " + association.getFkName() + " = ?", getId()); }
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; }
new DB(metaModel.getDbName()).exec(metaModel.getDialect().insertManyToManyAssociation(ass), getId(), child.getId()); } else {
/** * Executes DML. Use it for inserts and updates. * * @param query raw DML. * @return number of rows afected by query. */ public static int exec(String query){ return new DB(DB.DEFAULT_NAME).exec(query); }
/** * Deletes all records from a join table related to this model. * * @param association association to another table. */ private void deleteManyToManyLinks(Many2ManyAssociation association){ String join = association.getJoin(); String sourceFK = association.getSourceFkName(); new DB(metaModelLocal.getDbName()).exec("DELETE FROM " + join + " WHERE " + sourceFK + " = ?", getId()); }
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; }
private void deleteOne2ManyChildrenShallow() { List<OneToManyAssociation> childAssociations = getMetaModelLocal().getOneToManyAssociations(Collections.<Association>emptyList()); for (OneToManyAssociation association : childAssociations) { String target = association.getTarget(); String query = "DELETE FROM " + target + " WHERE " + association.getFkName() + " = ?"; new DB(getMetaModelLocal().getDbName()).exec(query, getId()); } }
private void deleteJoinsForManyToMany() { List<? extends Association> associations = getMetaModelLocal().getManyToManyAssociations(Collections.<Association>emptyList()); for (Association association : associations) { String join = ((Many2ManyAssociation)association).getJoin(); String sourceFK = ((Many2ManyAssociation)association).getSourceFkName(); String query = "DELETE FROM " + join + " WHERE " + sourceFK + " = " + getId(); new DB(getMetaModelLocal().getDbName()).exec(query); } }
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; }
/** * Deletes immediate polymorphic children */ private void deletePolymorphicChildrenShallow(OneToManyPolymorphicAssociation association){ String targetTable = metaModelOf(association.getTargetClass()).getTableName(); String parentType = association.getTypeLabel(); new DB(metaModelLocal.getDbName()).exec("DELETE FROM " + targetTable + " WHERE parent_id = ? AND parent_type = ?", getId(), parentType); }