public class SQLServer2012Dialect extends SQLServer2008Dialect
使用 OFFSET FETCH 分页算法
该算百万分页性能可以每页保持几百ms,适用于sqlserver2012+
DISTINCT, FROM, LOGGER, ORDER_BY, ORDER_BY_PATTERN, SELECT
构造器和说明 |
---|
SQLServer2012Dialect() |
限定符和类型 | 方法和说明 |
---|---|
java.lang.String |
applyLocksToSql(java.lang.String arg0,
java.util.Map arg1,
java.util.Map arg2) |
int |
convertToFirstRowValue(int zeroBasedFirstResult) |
boolean |
dropTemporaryTableAfterUse() |
java.lang.String |
generateTemporaryTableName(java.lang.String arg0) |
java.lang.String |
getAddColumnString() |
java.lang.String |
getCreateSequenceString(java.lang.String sequenceName) |
java.lang.String |
getDropSequenceString(java.lang.String sequenceName) |
java.lang.String |
getForUpdateString() |
java.lang.String |
getIdentityColumnString() |
java.lang.String |
getIdentitySelectString() |
java.lang.String |
getLimitString(java.lang.String querySelect,
int offset,
int limit)
SQLServer 强制使用 OFFSET/LIMIT 遵循以下规则
1.
|
java.lang.String |
getNullColumnString() |
java.lang.String |
getQuerySequencesString() |
java.sql.ResultSet |
getResultSet(java.sql.CallableStatement arg0) |
java.lang.String |
getSelectSequenceNextValString(java.lang.String sequenceName) |
java.lang.String |
getSequenceNextValString(java.lang.String sequenceName) |
boolean |
isCurrentTimestampSelectStringCallable() |
boolean |
qualifyIndexName() |
int |
registerResultSetOutParameter(java.sql.CallableStatement arg0,
int arg1) |
boolean |
supportsCurrentTimestampSelection() |
boolean |
supportsEmptyInList() |
boolean |
supportsExistsInSelect() |
boolean |
supportsIdentityColumns() |
boolean |
supportsInsertSelectIdentity() |
boolean |
supportsLimit() |
boolean |
supportsLimitOffset() |
boolean |
supportsPooledSequences() |
boolean |
supportsSequences() |
boolean |
supportsTemporaryTables() |
boolean |
supportsVariableLimit() |
boolean |
useMaxForLimit() |
bindLimitParametersFirst, doWithRowNumber, findIndexOfPattern, getLimitString, getSelectColumnsWithoutAliases, relaceAllColumnsAliases, replaceDistinctWithGroupBy
getModifyColumnString, getTextLimit
appendIdentitySelectToInsert, appendLockHint, areStringComparisonsCaseInsensitive, closeQuote, doesReadCommittedCauseWritersToBlockReaders, doesRepeatableReadCauseReadersToBlockWriters, getCurrentTimestampSelectString, getNoColumnsInsertString, getSelectGUIDString, openQuote, supportsCircularCascadeDeleteConstraints, supportsLobValueChangePropogation, supportsResultSetPositionQueryMethodsOnForwardOnlyCursor
bindLimitParametersInReverseOrder, buildSQLExceptionConverter, createCaseFragment, createOuterJoinFragment, dropConstraints, forceLimitUsage, forUpdateOfColumns, getAddForeignKeyConstraintString, getAddPrimaryKeyConstraintString, getCascadeConstraintsString, getCastTypeName, getColumnComment, getCreateMultisetTableString, getCreateSequenceString, getCreateSequenceStrings, getCreateSequenceStrings, getCreateTableString, getCreateTemporaryTablePostfix, getCreateTemporaryTableString, getCurrentTimestampSQLFunctionName, getDefaultProperties, getDialect, getDialect, getDropForeignKeyString, getDropSequenceStrings, getForUpdateNowaitString, getForUpdateNowaitString, getForUpdateString, getForUpdateString, getFunctions, getHibernateTypeName, getHibernateTypeName, getIdentityColumnString, getIdentityInsertString, getIdentitySelectString, getKeywords, getLockingStrategy, getLowercaseFunction, getMaxAliasLength, getNativeIdentifierGeneratorClass, getSelectClauseNullString, getTableComment, getTableTypeString, getTypeName, getTypeName, getViolatedConstraintNameExtracter, hasAlterTable, hasDataTypeInIdentityColumn, hasSelfReferentialForeignKeyBug, performTemporaryTableDDLInIsolation, quote, registerColumnType, registerColumnType, registerFunction, registerHibernateType, registerHibernateType, registerKeyword, requiresCastingOfParametersInSelectClause, supportsBindAsCallableArgument, supportsCascadeDelete, supportsColumnCheck, supportsCommentOn, supportsExpectedLobUsagePattern, supportsIfExistsAfterTableName, supportsIfExistsBeforeTableName, supportsNotNullUnique, supportsOuterJoinForUpdate, supportsParametersInInsertSelect, supportsRowValueConstructorSyntax, supportsRowValueConstructorSyntaxInInList, supportsSubqueryOnMutatingTable, supportsSubselectAsInPredicateLHS, supportsTableCheck, supportsUnboundedLobLocatorMaterialization, supportsUnionAll, supportsUnique, supportsUniqueConstraintInCreateAlterTable, toBooleanValueString, toString, transformSelectString, useInputStreamToInsertBlob
public java.lang.String getLimitString(java.lang.String querySelect, int offset, int limit)
getLimitString
在类中 SQLServer2005Dialect
querySelect
- offset
- limit
- public boolean useMaxForLimit()
useMaxForLimit
在类中 SQLServer2005Dialect
public int convertToFirstRowValue(int zeroBasedFirstResult)
public boolean supportsLimitOffset()
public boolean supportsLimit()
supportsLimit
在类中 SQLServer2005Dialect
public boolean supportsVariableLimit()
public boolean supportsSequences()
supportsSequences
在类中 org.hibernate.dialect.Dialect
public boolean supportsPooledSequences()
supportsPooledSequences
在类中 org.hibernate.dialect.Dialect
public java.lang.String getCreateSequenceString(java.lang.String sequenceName)
getCreateSequenceString
在类中 org.hibernate.dialect.Dialect
public java.lang.String getDropSequenceString(java.lang.String sequenceName)
getDropSequenceString
在类中 org.hibernate.dialect.Dialect
public java.lang.String getSelectSequenceNextValString(java.lang.String sequenceName)
getSelectSequenceNextValString
在类中 org.hibernate.dialect.Dialect
public java.lang.String getSequenceNextValString(java.lang.String sequenceName)
getSequenceNextValString
在类中 org.hibernate.dialect.Dialect
public java.lang.String getQuerySequencesString()
getQuerySequencesString
在类中 org.hibernate.dialect.Dialect
public java.lang.String getAddColumnString()
getAddColumnString
在类中 org.hibernate.dialect.Dialect
public java.lang.String getNullColumnString()
getNullColumnString
在类中 org.hibernate.dialect.Dialect
public boolean qualifyIndexName()
qualifyIndexName
在类中 org.hibernate.dialect.Dialect
public java.lang.String getForUpdateString()
getForUpdateString
在类中 org.hibernate.dialect.Dialect
public boolean supportsIdentityColumns()
supportsIdentityColumns
在类中 org.hibernate.dialect.Dialect
public java.lang.String getIdentitySelectString()
getIdentitySelectString
在类中 org.hibernate.dialect.Dialect
public java.lang.String getIdentityColumnString()
getIdentityColumnString
在类中 org.hibernate.dialect.Dialect
public boolean supportsInsertSelectIdentity()
supportsInsertSelectIdentity
在类中 org.hibernate.dialect.Dialect
public java.lang.String applyLocksToSql(java.lang.String arg0, java.util.Map arg1, java.util.Map arg2)
applyLocksToSql
在类中 org.hibernate.dialect.Dialect
public int registerResultSetOutParameter(java.sql.CallableStatement arg0, int arg1) throws java.sql.SQLException
registerResultSetOutParameter
在类中 org.hibernate.dialect.Dialect
java.sql.SQLException
public java.sql.ResultSet getResultSet(java.sql.CallableStatement arg0) throws java.sql.SQLException
getResultSet
在类中 org.hibernate.dialect.Dialect
java.sql.SQLException
public boolean supportsCurrentTimestampSelection()
supportsCurrentTimestampSelection
在类中 org.hibernate.dialect.Dialect
public boolean isCurrentTimestampSelectStringCallable()
isCurrentTimestampSelectStringCallable
在类中 org.hibernate.dialect.Dialect
public boolean supportsTemporaryTables()
supportsTemporaryTables
在类中 org.hibernate.dialect.Dialect
public java.lang.String generateTemporaryTableName(java.lang.String arg0)
generateTemporaryTableName
在类中 org.hibernate.dialect.Dialect
public boolean dropTemporaryTableAfterUse()
dropTemporaryTableAfterUse
在类中 org.hibernate.dialect.Dialect
public boolean supportsEmptyInList()
supportsEmptyInList
在类中 org.hibernate.dialect.Dialect
public boolean supportsExistsInSelect()
supportsExistsInSelect
在类中 org.hibernate.dialect.Dialect