org.seasar.extension.jdbc.dialect
クラス StandardDialect

java.lang.Object
  上位を拡張 org.seasar.extension.jdbc.dialect.StandardDialect
すべての実装されたインタフェース:
DbmsDialect
直系の既知のサブクラス:
Db2Dialect, DerbyDialect, FirebirdDialect, H2Dialect, HsqlDialect, InterbaseDialect, MaxdbDialect, MssqlDialect, MysqlDialect, OracleDialect, PostgreDialect, SqliteDialect, SybaseDialect

public class StandardDialect
extends java.lang.Object
implements DbmsDialect

標準的な方言をあつかうクラスです

作成者:
higa

フィールドの概要
protected static java.util.Set<java.lang.String> entityExistsExceptionStateCode
          EntityExistsExceptionに該当するSQLステートです。
 
コンストラクタの概要
StandardDialect()
           
 
メソッドの概要
 java.lang.String convertGetCountSql(java.lang.String sql)
          件数取得用SQLに変換します。
 java.lang.String convertLimitSql(java.lang.String sql, int offset, int limit)
          limit用SQLに変換します。
protected  java.lang.String convertLimitSqlByRowNumber(java.lang.String sql, int offset, int limit)
          行番号を使ったSQLに変換します。
protected  java.lang.String convertOrderBy(java.lang.String orderBy)
          order by句のテーブルのエイリアスを一時的なテーブル名に変換します。
protected  java.sql.SQLException getCauseSQLException(java.lang.Throwable t)
          例外チェーンをたどって原因となったSQL例外を返します。
 java.lang.String getCountSqlSelectList(java.util.List<PropertyMeta> idPropertyMeta)
          件数取得用SQLのSELECTリストを返します。
 int getDefaultBatchSize()
          デフォルトのバッチサイズを返します。
 GenerationType getDefaultGenerationType()
          GeneratedValue.strategy()GenerationType.AUTOが指定された場合の、 デフォルトのGenerationTypeを返します。
protected  java.lang.Integer getErrorCode(java.lang.Throwable t)
          例外チェーンをたどって原因となったベンダー固有の例外コードを返します。
 java.lang.String getForUpdateString(SelectForUpdateType type, int waitSeconds, Pair<java.lang.String,java.lang.String>... aliases)
          SELECT文に付加するFOR UPDATE NOWAIT相当のSQLを返します。
 java.lang.String getHintComment(java.lang.String hint)
          ヒントコメントを返します。
 java.lang.String getIdentitySelectString(java.lang.String tableName, java.lang.String columnName)
          識別子がGenerationType.IDENTITYで自動生成される場合に、 生成された主キーの値を取得するSQLを返します。
 java.lang.String getLockHintString(SelectForUpdateType type, int waitSeconds)
          SELECT文に付加するロックヒントを返します。
 java.lang.String getName()
          名前を返します。
protected  java.lang.String getRowNumberFunctionName()
          行番号ファンクション名を返します。
 java.lang.String getSequenceNextValString(java.lang.String sequenceName, int allocationSize)
          識別子がGenerationType.SEQUENCEで自動生成される場合に、 シーケンスの値を取得するSQLを返します。
protected  java.lang.String getSQLState(java.lang.Throwable t)
          例外チェーンをたどって原因となったSQLステートを返します。
 ValueType getValueType(java.lang.Class<?> clazz, boolean lob, TemporalType temporalType)
          値タイプを返します。
 ValueType getValueType(PropertyMeta propertyMeta)
          値タイプを返します。
protected  ValueType getValueTypeInternal(java.lang.Class<?> clazz)
          値タイプを返します。
 boolean isInsertIdentityColumn()
          識別子がGenerationType.IDENTITYで生成される場合に、 識別子をINSERT文に含める場合は trueを返します。
 boolean isUniqueConstraintViolation(java.lang.Throwable t)
          一意制約違反を原因とする例外であればtrueを返します。
 boolean needsParameterForResultSet()
          プロシージャの呼び出しで結果セットに対してパラメータが必要かどうかを返します。
 void setupJoin(FromClause fromClause, WhereClause whereClause, JoinType joinType, java.lang.String tableName, java.lang.String tableAlias, java.lang.String fkTableAlias, java.lang.String pkTableAlias, java.util.List<JoinColumnMeta> joinColumnMetaList, java.lang.String lockHint, java.lang.String condition)
          結合用のSQLを組み立てます。
 boolean supportsBatchUpdateResults()
          バッチ更新の結果として更新カウントの配列を正しく返す場合はtrueを返します。
 boolean supportsCursor()
          カーソルをサポートしているかどうか返します。
 boolean supportsForUpdate(SelectForUpdateType type, boolean withTarget)
          SELECT文でFOR UPDATEをサポートしていればtrueを返します。
 boolean supportsGetGeneratedKeys()
          識別子がGenerationType.IDENTITYで自動生成される場合に、 生成された主キーの値を Statement.getGeneratedKeys()で取得できる場合はtrueを返します。
 boolean supportsIdentity()
          GenerationType.IDENTITYをサポートしている場合はtrueを返します。
 boolean supportsInnerJoinForUpdate()
          内部結合した場合にFOR UPDATEをサポートしていればtrueを返します。
 boolean supportsLimit()
          リミットをサポートしているかどうかを返します。
 boolean supportsLockHint()
          SELECT文で排他制御のためのロックヒントをサポートしていればtrueを返します。
 boolean supportsOffset()
          オフセットをサポートしているかどうかを返します。
 boolean supportsOffsetWithoutLimit()
          リミットなしのオフセットをサポートしているかどうかを返します。
 boolean supportsOuterJoinForUpdate()
          外部結合した場合にFOR UPDATEをサポートしていればtrueを返します。
 boolean supportsSequence()
          GenerationType.SEQUENCEをサポートしている場合はtrueを返します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

entityExistsExceptionStateCode

protected static final java.util.Set<java.lang.String> entityExistsExceptionStateCode
EntityExistsExceptionに該当するSQLステートです。

コンストラクタの詳細

StandardDialect

public StandardDialect()
メソッドの詳細

getName

public java.lang.String getName()
インタフェース DbmsDialect の記述:
名前を返します。

定義:
インタフェース DbmsDialect 内の getName
戻り値:
名前

supportsLimit

public boolean supportsLimit()
インタフェース DbmsDialect の記述:
リミットをサポートしているかどうかを返します。

定義:
インタフェース DbmsDialect 内の supportsLimit
戻り値:
リミットをサポートしているかどうか

supportsOffset

public boolean supportsOffset()
インタフェース DbmsDialect の記述:
オフセットをサポートしているかどうかを返します。

定義:
インタフェース DbmsDialect 内の supportsOffset
戻り値:
オフセットをサポートしているかどうか

supportsOffsetWithoutLimit

public boolean supportsOffsetWithoutLimit()
インタフェース DbmsDialect の記述:
リミットなしのオフセットをサポートしているかどうかを返します。

定義:
インタフェース DbmsDialect 内の supportsOffsetWithoutLimit
戻り値:
リミットなしのオフセットをサポートしているかどうか

supportsCursor

public boolean supportsCursor()
インタフェース DbmsDialect の記述:
カーソルをサポートしているかどうか返します。

定義:
インタフェース DbmsDialect 内の supportsCursor
戻り値:
カーソルをサポートしているかどうか

needsParameterForResultSet

public boolean needsParameterForResultSet()
インタフェース DbmsDialect の記述:
プロシージャの呼び出しで結果セットに対してパラメータが必要かどうかを返します。

定義:
インタフェース DbmsDialect 内の needsParameterForResultSet
戻り値:
プロシージャの呼び出しで結果セットに対してパラメータが必要かどうか

convertLimitSql

public java.lang.String convertLimitSql(java.lang.String sql,
                                        int offset,
                                        int limit)
インタフェース DbmsDialect の記述:
limit用SQLに変換します。

定義:
インタフェース DbmsDialect 内の convertLimitSql
パラメータ:
sql - SQL
offset - オフセット
limit - リミット
戻り値:
limit用SQL

convertGetCountSql

public java.lang.String convertGetCountSql(java.lang.String sql)
インタフェース DbmsDialect の記述:
件数取得用SQLに変換します。

定義:
インタフェース DbmsDialect 内の convertGetCountSql
パラメータ:
sql - SQL
戻り値:
件数取得用SQL

getCountSqlSelectList

public java.lang.String getCountSqlSelectList(java.util.List<PropertyMeta> idPropertyMeta)
インタフェース DbmsDialect の記述:
件数取得用SQLのSELECTリストを返します。

定義:
インタフェース DbmsDialect 内の getCountSqlSelectList
パラメータ:
idPropertyMeta - IDプロパティのメタデータ
戻り値:
件数取得用SQLのSELECTリスト

getValueType

public ValueType getValueType(PropertyMeta propertyMeta)
インタフェース DbmsDialect の記述:
値タイプを返します。

定義:
インタフェース DbmsDialect 内の getValueType
パラメータ:
propertyMeta - プロパティのメタデータ
戻り値:
値タイプ

getValueType

public ValueType getValueType(java.lang.Class<?> clazz,
                              boolean lob,
                              TemporalType temporalType)
インタフェース DbmsDialect の記述:
値タイプを返します。

定義:
インタフェース DbmsDialect 内の getValueType
パラメータ:
clazz - クラス
lob - LOBかどうか
temporalType - 時制の種別
戻り値:
値タイプ

getValueTypeInternal

protected ValueType getValueTypeInternal(java.lang.Class<?> clazz)
値タイプを返します。

パラメータ:
clazz - クラス
戻り値:
値タイプ

setupJoin

public void setupJoin(FromClause fromClause,
                      WhereClause whereClause,
                      JoinType joinType,
                      java.lang.String tableName,
                      java.lang.String tableAlias,
                      java.lang.String fkTableAlias,
                      java.lang.String pkTableAlias,
                      java.util.List<JoinColumnMeta> joinColumnMetaList,
                      java.lang.String lockHint,
                      java.lang.String condition)
インタフェース DbmsDialect の記述:
結合用のSQLを組み立てます。

定義:
インタフェース DbmsDialect 内の setupJoin
パラメータ:
fromClause - from句
whereClause - where句
joinType - 結合タイプ
tableName - テーブル名
tableAlias - テーブル別名
fkTableAlias - 外部キーを持つテーブルの別名
pkTableAlias - 主キーを持つテーブルの別名
joinColumnMetaList - 結合カラムメタデータのリスト
lockHint - ロックヒント
condition - 付加的な結合条件

getDefaultGenerationType

public GenerationType getDefaultGenerationType()
インタフェース DbmsDialect の記述:
GeneratedValue.strategy()GenerationType.AUTOが指定された場合の、 デフォルトのGenerationTypeを返します。

定義:
インタフェース DbmsDialect 内の getDefaultGenerationType
戻り値:
デフォルトのGenerationType

supportsIdentity

public boolean supportsIdentity()
インタフェース DbmsDialect の記述:
GenerationType.IDENTITYをサポートしている場合はtrueを返します。

定義:
インタフェース DbmsDialect 内の supportsIdentity
戻り値:
GenerationType.IDENTITYをサポートしている場合はtrue

isInsertIdentityColumn

public boolean isInsertIdentityColumn()
インタフェース DbmsDialect の記述:
識別子がGenerationType.IDENTITYで生成される場合に、 識別子をINSERT文に含める場合は trueを返します。

定義:
インタフェース DbmsDialect 内の isInsertIdentityColumn
戻り値:
識別子をINSERT文に含める場合はtrue

supportsGetGeneratedKeys

public boolean supportsGetGeneratedKeys()
インタフェース DbmsDialect の記述:
識別子がGenerationType.IDENTITYで自動生成される場合に、 生成された主キーの値を Statement.getGeneratedKeys()で取得できる場合はtrueを返します。

定義:
インタフェース DbmsDialect 内の supportsGetGeneratedKeys
戻り値:
生成された識別子の値をStatement.getGeneratedKeys()で取得できる場合は true

getIdentitySelectString

public java.lang.String getIdentitySelectString(java.lang.String tableName,
                                                java.lang.String columnName)
インタフェース DbmsDialect の記述:
識別子がGenerationType.IDENTITYで自動生成される場合に、 生成された主キーの値を取得するSQLを返します。

定義:
インタフェース DbmsDialect 内の getIdentitySelectString
パラメータ:
tableName - テーブル名
columnName - 識別子のカラム名
戻り値:
生成された識別子の値を取得するSQL

supportsSequence

public boolean supportsSequence()
インタフェース DbmsDialect の記述:
GenerationType.SEQUENCEをサポートしている場合はtrueを返します。

定義:
インタフェース DbmsDialect 内の supportsSequence
戻り値:
GenerationType.SEQUENCEをサポートしている場合はtrue

getSequenceNextValString

public java.lang.String getSequenceNextValString(java.lang.String sequenceName,
                                                 int allocationSize)
インタフェース DbmsDialect の記述:
識別子がGenerationType.SEQUENCEで自動生成される場合に、 シーケンスの値を取得するSQLを返します。

定義:
インタフェース DbmsDialect 内の getSequenceNextValString
パラメータ:
sequenceName - シーケンス名
allocationSize - アロケーションサイズ
戻り値:
シーケンスの値を取得するSQL

getDefaultBatchSize

public int getDefaultBatchSize()
インタフェース DbmsDialect の記述:
デフォルトのバッチサイズを返します。

定義:
インタフェース DbmsDialect 内の getDefaultBatchSize
戻り値:
デフォルトのバッチサイズ

supportsBatchUpdateResults

public boolean supportsBatchUpdateResults()
インタフェース DbmsDialect の記述:
バッチ更新の結果として更新カウントの配列を正しく返す場合はtrueを返します。

定義:
インタフェース DbmsDialect 内の supportsBatchUpdateResults
戻り値:
バッチ更新の結果として更新カウントの配列を正しく返す場合はtrue

getRowNumberFunctionName

protected java.lang.String getRowNumberFunctionName()
行番号ファンクション名を返します。

戻り値:
行番号ファンクション名

convertLimitSqlByRowNumber

protected java.lang.String convertLimitSqlByRowNumber(java.lang.String sql,
                                                      int offset,
                                                      int limit)
                                               throws OrderByNotFoundRuntimeException
行番号を使ったSQLに変換します。

パラメータ:
sql - SQL
offset - オフセット
limit - リミット
戻り値:
offset、limitつきのSQL
例外:
OrderByNotFoundRuntimeException - order byが見つからない場合。

convertOrderBy

protected java.lang.String convertOrderBy(java.lang.String orderBy)
order by句のテーブルのエイリアスを一時的なテーブル名に変換します。

パラメータ:
orderBy - order by句
戻り値:
変換後のorder by句

isUniqueConstraintViolation

public boolean isUniqueConstraintViolation(java.lang.Throwable t)
インタフェース DbmsDialect の記述:
一意制約違反を原因とする例外であればtrueを返します。

定義:
インタフェース DbmsDialect 内の isUniqueConstraintViolation
パラメータ:
t - 例外
戻り値:
一意制約違反を原因とする例外であればtrue

getSQLState

protected java.lang.String getSQLState(java.lang.Throwable t)
例外チェーンをたどって原因となったSQLステートを返します。

例外チェーンにSQL例外が存在しない場合や、SQLステートが設定されていない場合はnullを返します。

パラメータ:
t - 例外
戻り値:
原因となったSQLステート

getErrorCode

protected java.lang.Integer getErrorCode(java.lang.Throwable t)
例外チェーンをたどって原因となったベンダー固有の例外コードを返します。

例外チェーンにSQL例外が存在しない場合や、例外コードが設定されていない場合はnullを返します。

パラメータ:
t - 例外
戻り値:
原因となったベンダー固有の例外コード

getCauseSQLException

protected java.sql.SQLException getCauseSQLException(java.lang.Throwable t)
例外チェーンをたどって原因となったSQL例外を返します。

例外チェーンにSQL例外が存在しない場合はnullを返します。

パラメータ:
t - 例外
戻り値:
原因となったSQL例外

supportsForUpdate

public boolean supportsForUpdate(SelectForUpdateType type,
                                 boolean withTarget)
インタフェース DbmsDialect の記述:
SELECT文でFOR UPDATEをサポートしていればtrueを返します。

定義:
インタフェース DbmsDialect 内の supportsForUpdate
パラメータ:
type - SELECT ~ FOR UPDATEのタイプ
withTarget - ロック対象を指定する場合はtrue
戻り値:
SELECT文でFOR UPDATEをサポートしていればtrue

getForUpdateString

public java.lang.String getForUpdateString(SelectForUpdateType type,
                                           int waitSeconds,
                                           Pair<java.lang.String,java.lang.String>... aliases)
インタフェース DbmsDialect の記述:
SELECT文に付加するFOR UPDATE NOWAIT相当のSQLを返します。

定義:
インタフェース DbmsDialect 内の getForUpdateString
パラメータ:
type - SELECT ~ FOR UPDATEのタイプ
waitSeconds - typeSelectForUpdateType.WAIT が指定された場合の待機時間(秒単位)
aliases - ロック対象となるカラムのエイリアス。対象が指定されなかった場合は空の配列
戻り値:
SELECT文に付加するFOR UPDATE句のSQL

supportsLockHint

public boolean supportsLockHint()
インタフェース DbmsDialect の記述:
SELECT文で排他制御のためのロックヒントをサポートしていればtrueを返します。

定義:
インタフェース DbmsDialect 内の supportsLockHint
戻り値:
SELECT文で排他制御のためのロックヒントをサポートしていればtrue

getLockHintString

public java.lang.String getLockHintString(SelectForUpdateType type,
                                          int waitSeconds)
インタフェース DbmsDialect の記述:
SELECT文に付加するロックヒントを返します。

定義:
インタフェース DbmsDialect 内の getLockHintString
パラメータ:
type - SELECT ~ FOR UPDATEのタイプ
waitSeconds - typeSelectForUpdateType.WAIT が指定された場合の待機時間(秒単位)
戻り値:
SELECT文に付加するロックヒント

supportsInnerJoinForUpdate

public boolean supportsInnerJoinForUpdate()
インタフェース DbmsDialect の記述:
内部結合した場合にFOR UPDATEをサポートしていればtrueを返します。

定義:
インタフェース DbmsDialect 内の supportsInnerJoinForUpdate
戻り値:
内部結合した場合にFOR UPDATEをサポートしていればtrue

supportsOuterJoinForUpdate

public boolean supportsOuterJoinForUpdate()
インタフェース DbmsDialect の記述:
外部結合した場合にFOR UPDATEをサポートしていればtrueを返します。

定義:
インタフェース DbmsDialect 内の supportsOuterJoinForUpdate
戻り値:
外部結合した場合にFOR UPDATEをサポートしていればtrue

getHintComment

public java.lang.String getHintComment(java.lang.String hint)
インタフェース DbmsDialect の記述:
ヒントコメントを返します。

定義:
インタフェース DbmsDialect 内の getHintComment
パラメータ:
hint - ヒント
戻り値:
ヒントコメント


Copyright © 2004-2014 The Seasar Foundation. All Rights Reserved.