org.hibernate.dialect.HANARowStoreDialect Maven / Gradle / Ivy
Show all versions of hibernate-core Show documentation
/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
* See the lgpl.txt file in the root directory or .
*/
package org.hibernate.dialect;
import org.hibernate.query.sqm.consume.multitable.internal.StandardIdTableSupport;
import org.hibernate.query.sqm.consume.multitable.spi.IdTableStrategy;
import org.hibernate.query.sqm.consume.multitable.spi.idtable.GlobalTempTableExporter;
import org.hibernate.query.sqm.consume.multitable.spi.idtable.GlobalTemporaryTableStrategy;
import org.hibernate.query.sqm.consume.multitable.spi.idtable.IdTable;
import org.hibernate.query.sqm.consume.multitable.spi.idtable.IdTableSupport;
import org.hibernate.tool.schema.spi.Exporter;
/**
* An SQL dialect for the SAP HANA row store.
*
* For more information on interacting with the SAP HANA database, refer to the
* SAP HANA SQL and System Views Reference
* and the SAP
* HANA Client Interface Programming Reference.
*
* Row tables are created by this dialect when using the auto-ddl feature.
*
* @author Andrew Clemons
* @author Jonathan Bregler
*/
public class HANARowStoreDialect extends AbstractHANADialect {
public HANARowStoreDialect() {
super();
}
@Override
public String getCreateTableString() {
return "create row table";
}
@Override
public IdTableStrategy getDefaultIdTableStrategy() {
return new GlobalTemporaryTableStrategy(
generateIdTableSupport()
);
}
protected IdTableSupport generateIdTableSupport() {
return new StandardIdTableSupport( new GlobalTempTableExporter() ) {
@Override
public Exporter getIdTableExporter() {
return generateIdTableExporter();
}
};
}
protected Exporter generateIdTableExporter() {
return new GlobalTempTableExporter() {
@Override
protected String getCreateCommand() {
return "create global temporary row table";
}
};
}
}