@Published(tag="architect") public class SqlServerDialect extends DefaultDialect
Modifier and Type | Class and Description |
---|---|
protected static class |
SqlServerDialect.SqlServerResultSetConvertor
SQLServer用のResultSet変換クラス。
このクラスでは、
varbinary(max) で定義されたカラムの場合、
ヒープを圧迫しないようにResultSet.getBinaryStream(int) の結果を返す。 |
Constructor and Description |
---|
SqlServerDialect() |
Modifier and Type | Method and Description |
---|---|
java.lang.String |
convertCountSql(java.lang.String sql)
SQL文をレコード数取得用のSQL文に変換する。
|
java.lang.String |
getPingSql()
ping用のSQL文を返す。
データベースへの死活チェックを行うための、ping用SQL文を生成する。
|
ResultSetConvertor |
getResultSetConvertor()
ResultSet から値を取得するための変換クラスを返却する。 |
boolean |
isDuplicateException(java.sql.SQLException sqlException)
SQL例外が一意制約違反による例外か否か。
|
boolean |
isTransactionTimeoutError(java.sql.SQLException sqlException)
SQL例外がトランザクションタイムアウトと判断すべき例外か否か。
|
boolean |
supportsIdentity()
IDENTITY(オートインクリメントカラム)が使用できるか否か。
|
buildSequenceGeneratorSql, convertCountSql, convertPaginationSql, supportsIdentityWithBatchInsert, supportsOffset, supportsSequence
public boolean supportsIdentity()
true
を返す。supportsIdentity
in interface Dialect
supportsIdentity
in class DefaultDialect
false
を返す。public boolean isDuplicateException(java.sql.SQLException sqlException)
isDuplicateException
in interface Dialect
isDuplicateException
in class DefaultDialect
sqlException
- SQL例外false
を返す。public boolean isTransactionTimeoutError(java.sql.SQLException sqlException)
isTransactionTimeoutError
in interface Dialect
isTransactionTimeoutError
in class DefaultDialect
sqlException
- SQL例外false
を返す。public ResultSetConvertor getResultSetConvertor()
ResultSet
から値を取得するための変換クラスを返却する。
全てのカラムをResultSet.getObject(int)
で取得するコンバータを返す。
varbinary(max)
で定義されたカラムの場合は、ResultSet.getBinaryStream(int)
の結果を返す、
ResultSetの変換クラスを返却する。getResultSetConvertor
in interface Dialect
getResultSetConvertor
in class DefaultDialect
public java.lang.String convertCountSql(java.lang.String sql)
SELECT COUNT(*) COUNT_ FROM ('引数のSQL') SUB_
SQLServerは、インラインビュー内にORDER BYを記述することが出来ない。
このため、レコード数取得のSQLに変換する際にSQLの一番最後に存在しているORDER BYを削除後に
件数取得用のSQLに変換する。convertCountSql
in interface Dialect
convertCountSql
in class DefaultDialect
sql
- SQL文public java.lang.String getPingSql()
DefaultDialect
getPingSql
in interface Dialect
getPingSql
in class DefaultDialect