Search in sources :

Example 6 with ColumnListHandler

use of org.apache.commons.dbutils.handlers.ColumnListHandler in project metacat by Netflix.

the class MysqlUserMetadataService method _softDeleteDataMetadatas.

@SuppressWarnings("checkstyle:methodname")
private Void _softDeleteDataMetadatas(final Connection conn, final String userId, @Nullable final List<String> uris) throws SQLException {
    if (uris != null && !uris.isEmpty()) {
        final List<String> paramVariables = uris.stream().map(s -> "?").collect(Collectors.toList());
        final String[] aUris = uris.stream().toArray(String[]::new);
        final String paramString = Joiner.on(",").skipNulls().join(paramVariables);
        final ColumnListHandler<Long> handler = new ColumnListHandler<>("id");
        final List<Long> ids = new QueryRunner().query(conn, String.format(SQL.GET_DATA_METADATA_IDS, paramString), handler, (Object[]) aUris);
        if (!ids.isEmpty()) {
            final List<String> idParamVariables = ids.stream().map(s -> "?").collect(Collectors.toList());
            final Long[] aIds = ids.stream().toArray(Long[]::new);
            final String idParamString = Joiner.on(",").skipNulls().join(idParamVariables);
            final List<Long> dupIds = new QueryRunner().query(conn, String.format(SQL.GET_DATA_METADATA_DELETE_BY_IDS, idParamString), handler, (Object[]) aIds);
            if (!dupIds.isEmpty()) {
                ids.removeAll(dupIds);
            }
            final List<Object[]> deleteDataMetadatas = Lists.newArrayList();
            ids.forEach(id -> deleteDataMetadatas.add(new Object[] { id, userId }));
            new QueryRunner().batch(conn, SQL.SOFT_DELETE_DATA_METADATA, deleteDataMetadatas.toArray(new Object[deleteDataMetadatas.size()][2]));
        }
    }
    return null;
}
Also used : Arrays(java.util.Arrays) Connection(java.sql.Connection) URL(java.net.URL) Date(java.util.Date) HasDataMetadata(com.netflix.metacat.common.dto.HasDataMetadata) ObjectNode(com.fasterxml.jackson.databind.node.ObjectNode) DefinitionMetadataDto(com.netflix.metacat.common.dto.DefinitionMetadataDto) Strings(com.google.common.base.Strings) SQLException(java.sql.SQLException) Lists(com.google.common.collect.Lists) ResultSet(java.sql.ResultSet) Map(java.util.Map) UserMetadataServiceException(com.netflix.metacat.common.server.usermetadata.UserMetadataServiceException) DataSource(javax.sql.DataSource) Config(com.netflix.metacat.common.server.properties.Config) BaseUserMetadataService(com.netflix.metacat.common.server.usermetadata.BaseUserMetadataService) Nonnull(javax.annotation.Nonnull) Path(java.nio.file.Path) Nullable(javax.annotation.Nullable) Charsets(com.google.common.base.Charsets) DataSourceManager(com.netflix.metacat.common.server.util.DataSourceManager) Properties(java.util.Properties) QueryRunner(org.apache.commons.dbutils.QueryRunner) MetacatJson(com.netflix.metacat.common.json.MetacatJson) Files(java.nio.file.Files) HasDefinitionMetadata(com.netflix.metacat.common.dto.HasDefinitionMetadata) Set(java.util.Set) QualifiedName(com.netflix.metacat.common.QualifiedName) Reader(java.io.Reader) PreparedStatement(java.sql.PreparedStatement) Maps(com.google.common.collect.Maps) MetacatJsonException(com.netflix.metacat.common.json.MetacatJsonException) Collectors(java.util.stream.Collectors) HasMetadata(com.netflix.metacat.common.dto.HasMetadata) Slf4j(lombok.extern.slf4j.Slf4j) List(java.util.List) DBUtil(com.netflix.metacat.common.server.util.DBUtil) Paths(java.nio.file.Paths) Optional(java.util.Optional) Preconditions(com.google.common.base.Preconditions) ColumnListHandler(org.apache.commons.dbutils.handlers.ColumnListHandler) Collections(java.util.Collections) ResultSetHandler(org.apache.commons.dbutils.ResultSetHandler) FileSystems(java.nio.file.FileSystems) Joiner(com.google.common.base.Joiner) ColumnListHandler(org.apache.commons.dbutils.handlers.ColumnListHandler) QueryRunner(org.apache.commons.dbutils.QueryRunner)

Aggregations

UserMetadataServiceException (com.netflix.metacat.common.server.usermetadata.UserMetadataServiceException)6 Connection (java.sql.Connection)6 SQLException (java.sql.SQLException)6 QueryRunner (org.apache.commons.dbutils.QueryRunner)5 ColumnListHandler (org.apache.commons.dbutils.handlers.ColumnListHandler)5 Joiner (com.google.common.base.Joiner)3 Preconditions (com.google.common.base.Preconditions)3 Maps (com.google.common.collect.Maps)3 QualifiedName (com.netflix.metacat.common.QualifiedName)3 MetacatJson (com.netflix.metacat.common.json.MetacatJson)3 Config (com.netflix.metacat.common.server.properties.Config)3 DBUtil (com.netflix.metacat.common.server.util.DBUtil)3 DataSourceManager (com.netflix.metacat.common.server.util.DataSourceManager)3 List (java.util.List)3 Map (java.util.Map)3 Optional (java.util.Optional)3 Set (java.util.Set)3 Collectors (java.util.stream.Collectors)3 ObjectNode (com.fasterxml.jackson.databind.node.ObjectNode)2 Charsets (com.google.common.base.Charsets)2