|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.hibernate.dialect.Dialect org.hibernate.dialect.SybaseDialect org.hibernate.dialect.SQLServerDialect
A dialect for Microsoft SQL Server 2000 and 2005
Field Summary |
Fields inherited from class org.hibernate.dialect.Dialect |
CLOSED_QUOTE, DEFAULT_BATCH_SIZE, NO_BATCH, QUOTE |
Constructor Summary | |
SQLServerDialect()
|
Method Summary | |
String |
appendIdentitySelectToInsert(String insertSQL)
Use insert table(...) values(...) select SCOPE_IDENTITY() |
String |
appendLockHint(LockMode mode,
String tableName)
Some dialects support an alternative means to SELECT FOR UPDATE, whereby a "lock hint" is appends to the table name in the from clause. |
boolean |
areStringComparisonsCaseInsensitive()
Are string comparisons implicitly case insensitive. |
char |
closeQuote()
The character specific to this dialect used to close a quoted identifier. |
boolean |
doesReadCommittedCauseWritersToBlockReaders()
For the underlying database, is READ_COMMITTED isolation implemented by forcing readers to wait for write locks to be released? |
boolean |
doesRepeatableReadCauseReadersToBlockWriters()
For the underlying database, is REPEATABLE_READ isolation implemented by forcing writers to wait for read locks to be released? |
String |
getCurrentTimestampSelectString()
Retrieve the command used to retrieve the current timestammp from the database. |
String |
getLimitString(String querySelect,
int offset,
int limit)
Given a limit and an offset, apply the limit clause to the query. |
String |
getNoColumnsInsertString()
The fragment used to insert a row without specifying any column values. |
String |
getSelectGUIDString()
Get the command used to select a GUID from the underlying database. |
char |
openQuote()
The character specific to this dialect used to begin a quoted identifier. |
boolean |
supportsCircularCascadeDeleteConstraints()
Does this dialect support definition of cascade delete constraints which can cause circular chains? |
boolean |
supportsLimit()
Does this dialect support some form of limiting query results via a SQL clause? |
boolean |
supportsLimitOffset()
Does this dialect's LIMIT support (if any) additionally support specifying an offset? |
boolean |
supportsLobValueChangePropogation()
Does the dialect support propogating changes to LOB values back to the database? Talking about mutating the internal value of the locator as opposed to supplying a new locator instance... |
boolean |
supportsResultSetPositionQueryMethodsOnForwardOnlyCursor()
Does this dialect support asking the result set its positioning information on forward only cursors. |
boolean |
supportsVariableLimit()
Does this dialect support bind variables (i.e., prepared statememnt parameters) for its limit/offset? |
boolean |
useMaxForLimit()
Does the LIMIT clause take a "maximum" row number instead of a total number of returned rows? This is easiest understood via an example. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
public SQLServerDialect()
Method Detail |
public String getNoColumnsInsertString()
Dialect
getNoColumnsInsertString
in class Dialect
public String getLimitString(String querySelect, int offset, int limit)
Dialect
getLimitString
in class Dialect
querySelect
- The query to which to apply the limit.offset
- The offset of the limitlimit
- The limit of the limit ;)
public String appendIdentitySelectToInsert(String insertSQL)
appendIdentitySelectToInsert
in class SybaseDialect
public boolean supportsLimit()
Dialect
supportsLimit
in class Dialect
public boolean useMaxForLimit()
Dialect
useMaxForLimit
in class Dialect
public boolean supportsLimitOffset()
Dialect
supportsLimitOffset
in class Dialect
public boolean supportsVariableLimit()
Dialect
supportsVariableLimit
in class Dialect
public char closeQuote()
Dialect
closeQuote
in class Dialect
public char openQuote()
Dialect
public String appendLockHint(LockMode mode, String tableName)
Dialect
appendLockHint
in class SybaseDialect
public String getSelectGUIDString()
Dialect
getSelectGUIDString
in class Dialect
public String getCurrentTimestampSelectString()
Dialect
getCurrentTimestampSelectString
in class SybaseDialect
public boolean areStringComparisonsCaseInsensitive()
Dialect
areStringComparisonsCaseInsensitive
in class Dialect
public boolean supportsResultSetPositionQueryMethodsOnForwardOnlyCursor()
Dialect
ResultSet.isAfterLast()
and
ResultSet.isBeforeFirst()
. Certain drivers do not
allow access to these methods for forward only cursors.
NOTE : this is highly driver dependent!
supportsResultSetPositionQueryMethodsOnForwardOnlyCursor
in class Dialect
ResultSet.isAfterLast()
and
ResultSet.isBeforeFirst()
are supported for forward
only cursors; false otherwise.public boolean supportsCircularCascadeDeleteConstraints()
Dialect
supportsCircularCascadeDeleteConstraints
in class Dialect
public boolean supportsLobValueChangePropogation()
Dialect
Blob.setBinaryStream(long)
,
Blob.setBytes(long, byte[])
,
Blob.setBytes(long, byte[], int, int)
,
or Blob.truncate(long)
.
For CLOBs, the internal value might be changed by:
Clob.setAsciiStream(long)
,
Clob.setCharacterStream(long)
,
Clob.setString(long, String)
,
Clob.setString(long, String, int, int)
,
or Clob.truncate(long)
.
NOTE : I do not know the correct answer currently for
databases which (1) are not part of the cruise control process
or (2) do not Dialect.supportsExpectedLobUsagePattern()
.
supportsLobValueChangePropogation
in class Dialect
public boolean doesReadCommittedCauseWritersToBlockReaders()
Dialect
doesReadCommittedCauseWritersToBlockReaders
in class SybaseDialect
public boolean doesRepeatableReadCauseReadersToBlockWriters()
Dialect
doesRepeatableReadCauseReadersToBlockWriters
in class SybaseDialect
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |