org.infinispan.persistence.jdbc.table.management.H2TableManager Maven / Gradle / Ivy
package org.infinispan.persistence.jdbc.table.management;
import java.sql.Connection;
import org.infinispan.persistence.jdbc.configuration.TableManipulationConfiguration;
import org.infinispan.persistence.jdbc.connectionfactory.ConnectionFactory;
import org.infinispan.persistence.jdbc.logging.Log;
import org.infinispan.persistence.spi.PersistenceException;
import org.infinispan.util.logging.LogFactory;
/**
* @author Ryan Emerson
*/
class H2TableManager extends AbstractTableManager {
private static final Log LOG = LogFactory.getLog(H2TableManager.class, Log.class);
H2TableManager(ConnectionFactory connectionFactory, TableManipulationConfiguration config, DbMetaData metaData) {
super(connectionFactory, config, metaData, LOG);
}
@Override
public String getUpsertRowSql() {
if (upsertRowSql == null) {
upsertRowSql = String.format("MERGE INTO %1$s (%2$s, %3$s, %4$s) KEY(%4$s) VALUES(?, ?, ?)", getTableName(),
config.dataColumnName(), config.timestampColumnName(), config.idColumnName());
}
return upsertRowSql;
}
@Override
protected void dropTimestampIndex(Connection conn) throws PersistenceException {
String dropIndexDdl = String.format("DROP INDEX IF EXISTS %s", getIndexName(true));
executeUpdateSql(conn, dropIndexDdl);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy