Package nablarch.core.db.dialect
Class H2Dialect
java.lang.Object
nablarch.core.db.dialect.DefaultDialect
nablarch.core.db.dialect.H2Dialect
- All Implemented Interfaces:
Dialect
H2用のSQL方言クラス。
このクラスは、1.4.191 および 2.1.214 により動作確認を行っている。
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbuildSequenceGeneratorSql(String sequenceName) シーケンスオブジェクトの次の値を取得するSQL文を構築する。convertPaginationSql(String sql, SelectOption selectOption) SQL文を変換せずに返す。ping用のSQL文を返す。booleanisDuplicateException(SQLException sqlException) SQL例外が一意制約違反による例外か否か。booleanisTransactionTimeoutError(SQLException sqlException) SQL例外がトランザクションタイムアウトと判断すべき例外か否か。booleanIDENTITY(オートインクリメントカラム)が使用できるか否か。booleanbatch insert時にIDENTITY(オートインクリメントカラム)が使用できるか否か。booleanSQL文でのオフセット指定が使用できるか否かbooleanSEQUENCEが使用できるか否か。Methods inherited from class nablarch.core.db.dialect.DefaultDialect
convertCountSql, convertCountSql, getResultSetConvertor
-
Constructor Details
-
H2Dialect
public H2Dialect()
-
-
Method Details
-
supportsIdentity
public boolean supportsIdentity()IDENTITY(オートインクリメントカラム)が使用できるか否か。 H2では、IDENTITYカラムを使用できるため、trueを返す。- Specified by:
supportsIdentityin interfaceDialect- Overrides:
supportsIdentityin classDefaultDialect- Returns:
falseを返す。
-
supportsIdentityWithBatchInsert
public boolean supportsIdentityWithBatchInsert()batch insert時にIDENTITY(オートインクリメントカラム)が使用できるか否か。 H2では、batch insertでIDENTITYカラムが使用できるため、trueを返す。- Specified by:
supportsIdentityWithBatchInsertin interfaceDialect- Overrides:
supportsIdentityWithBatchInsertin classDefaultDialect- Returns:
falseを返す。
-
supportsSequence
public boolean supportsSequence()SEQUENCEが使用できるか否か。 H2では、シーケンスオブジェクトが使用できるので、trueを返す。- Specified by:
supportsSequencein interfaceDialect- Overrides:
supportsSequencein classDefaultDialect- Returns:
falseを返す。
-
supportsOffset
public boolean supportsOffset()SQL文でのオフセット指定が使用できるか否か H2では、offsetがサポートされるのでtrueを返す。- Specified by:
supportsOffsetin interfaceDialect- Overrides:
supportsOffsetin classDefaultDialect- Returns:
falseを返す。
-
isDuplicateException
SQL例外が一意制約違反による例外か否か。SQLException.getSQLState()が23505(unique_violation:一意制約違反)の場合、一意制約違反とする。- Specified by:
isDuplicateExceptionin interfaceDialect- Overrides:
isDuplicateExceptionin classDefaultDialect- Parameters:
sqlException- SQL例外- Returns:
falseを返す。
-
isTransactionTimeoutError
SQL例外がトランザクションタイムアウトと判断すべき例外か否か。 H2の場合、以下例外の場合タイムアウト対象の例外として扱う。- SQLState:57014(クエリタイムアウト時に送出される例外コード)
- SQLState:HYT00(ロック試行タイムアウト時に送出される例外コード)
- Specified by:
isTransactionTimeoutErrorin interfaceDialect- Overrides:
isTransactionTimeoutErrorin classDefaultDialect- Parameters:
sqlException- SQL例外- Returns:
falseを返す。
-
buildSequenceGeneratorSql
シーケンスオブジェクトの次の値を取得するSQL文を構築する。 シーケンス採番はサポートしない。nextval関数を使用して、次の順序を取得するSQL文を構築する。- Specified by:
buildSequenceGeneratorSqlin interfaceDialect- Overrides:
buildSequenceGeneratorSqlin classDefaultDialect- Parameters:
sequenceName- シーケンス名- Returns:
- シーケンスオブジェクトの次の値を取得するSQL文
-
convertPaginationSql
SQL文を変換せずに返す。offsetとlimitを使用したSQL文に変換する。- Specified by:
convertPaginationSqlin interfaceDialect- Overrides:
convertPaginationSqlin classDefaultDialect- Parameters:
sql- SQL文selectOption- 検索時のオプション- Returns:
- 変換したSQL文
-
getPingSql
Description copied from class:DefaultDialectping用のSQL文を返す。 データベースへの死活チェックを行うための、ping用SQL文を生成する。 デフォルト実装では、本メソッドはサポートしない。- Specified by:
getPingSqlin interfaceDialect- Overrides:
getPingSqlin classDefaultDialect- Returns:
- ping用のSQL文
-