public QueryBuilder createQueryBuilderFor(Query query, Class<? extends PersistentObject> entityType, OrderByBuilder orderByBuilder, Map<String, String> classAliasMappings, Map<String, Class<? extends PersistentObject>> interfaceToClassMapping, char likeEscapeCharacter) { if (query instanceof SQLQuery) { return new SQLQueryBuilder(query.getQueryString(), vendor, entityType, orderByBuilder, classAliasMappings, interfaceToClassMapping, likeEscapeCharacter); } else { return new HQLQueryBuilder(query.getQueryString(), orderByBuilder, classAliasMappings, interfaceToClassMapping, likeEscapeCharacter); } }
public QueryBuilder createQueryBuilderFor(Query query, Class<? extends PersistentObject> entityType, OrderByBuilder orderByBuilder, Map<String, String> classAliasMappings, Map<String, Class<? extends PersistentObject>> interfaceToClassMapping, char likeEscapeCharacter) { if (query instanceof SQLQuery) { return new SQLQueryBuilder(query.getQueryString(), vendor, entityType, orderByBuilder, classAliasMappings, interfaceToClassMapping, likeEscapeCharacter); } else { return new HQLQueryBuilder(query.getQueryString(), orderByBuilder, classAliasMappings, interfaceToClassMapping, likeEscapeCharacter); } }
@Override public void deleteByTenant(final Class<? extends PersistentObject> entityClass, final List<FilterOption> filters) throws SPersistenceException { try { final Session session = getSession(true); final String entityClassName = entityClass.getCanonicalName(); final boolean enableWordSearch = isWordSearchEnabled(entityClass); boolean hasFilters = filters != null && !filters.isEmpty(); String baseQuery = "DELETE FROM " + entityClassName + " " + (hasFilters ? getClassAliasMappings().get(entityClassName) : "") + " WHERE tenantId= :tenantId"; QueryBuilder queryBuilder = new HQLQueryBuilder(baseQuery, orderByBuilder, getClassAliasMappings(), interfaceToClassMapping, likeEscapeCharacter); if (hasFilters) { queryBuilder.appendFilters(filters, null, enableWordSearch); } final Query query = queryBuilder.buildQuery(session); query.setLong(TENANT_ID, getTenantId()); query.executeUpdate(); if (logger.isLoggable(getClass(), TechnicalLogSeverity.DEBUG)) { logger.log(this.getClass(), TechnicalLogSeverity.DEBUG, "[Tenant] Deleting all instance of class " + entityClass.getClass().getSimpleName()); } } catch (final STenantIdNotSetException e) { throw new SPersistenceException(e); } }
@Override public void deleteByTenant(final Class<? extends PersistentObject> entityClass, final List<FilterOption> filters) throws SPersistenceException { try { final Session session = getSession(true); final String entityClassName = entityClass.getCanonicalName(); final boolean enableWordSearch = isWordSearchEnabled(entityClass); boolean hasFilters = filters != null && !filters.isEmpty(); String baseQuery = "DELETE FROM " + entityClassName + " " + (hasFilters ? getClassAliasMappings().get(entityClassName) : "") + " WHERE tenantId= :tenantId"; QueryBuilder queryBuilder = new HQLQueryBuilder(baseQuery, orderByBuilder, getClassAliasMappings(), interfaceToClassMapping, likeEscapeCharacter); if (hasFilters) { queryBuilder.appendFilters(filters, null, enableWordSearch); } final Query query = queryBuilder.buildQuery(session); query.setLong(TENANT_ID, getTenantId()); query.executeUpdate(); if (logger.isLoggable(getClass(), TechnicalLogSeverity.DEBUG)) { logger.log(this.getClass(), TechnicalLogSeverity.DEBUG, "[Tenant] Deleting all instance of class " + entityClass.getClass().getSimpleName()); } } catch (final STenantIdNotSetException e) { throw new SPersistenceException(e); } }