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, SybaseDialect

public class StandardDialect
extends Object
implements DbmsDialect

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

作成者:
higa

フィールドの概要
protected static Set<String> entityExistsExceptionStateCode
          EntityExistsExceptionに該当するSQLステートです。
 
コンストラクタの概要
StandardDialect()
           
 
メソッドの概要
 String convertLimitSql(String sql, int offset, int limit)
          limit用SQLに変換します。
protected  String convertLimitSqlByRowNumber(String sql, int offset, int limit)
          行番号を使ったSQLに変換します。
protected  String convertOrderBy(String orderBy)
          order by句のテーブルのエイリアスを一時的なテーブル名に変換します。
 int getDefaultBatchSize()
          デフォルトのバッチサイズを返します。
 GenerationType getDefaultGenerationType()
          GeneratedValue.strategy()GenerationType.AUTOが指定された場合の、 デフォルトのGenerationTypeを返します。
 String getForUpdateString(SelectForUpdateType type, int waitSeconds, Pair<String,String>... aliases)
          SELECT文に付加するFOR UPDATE NOWAIT相当のSQLを返します。
 String getIdentitySelectString(String tableName, String columnName)
          識別子がGenerationType.IDENTITYで自動生成される場合に、 生成された主キーの値を取得するSQLを返します。
 String getLockHintString(SelectForUpdateType type, int waitSeconds)
          SELECT文に付加するロックヒントを返します。
 String getName()
          名前を返します。
protected  String getRowNumberFunctionName()
          行番号ファンクション名を返します。
 String getSequenceNextValString(String sequenceName)
          識別子がGenerationType.SEQUENCEで自動生成される場合に、 シーケンスの値を取得するSQLを返します。
protected  String getSQLState(Throwable t)
          例外チェーンをたどって原因となったSQLステートを返します。
 ValueType getValueType(Class<?> clazz, boolean lob, TemporalType temporalType)
          値タイプを返します。
 ValueType getValueType(PropertyMeta propertyMeta)
          値タイプを返します。
protected  ValueType getValueTypeInternal(Class<?> clazz)
          値タイプを返します。
 boolean isInsertIdentityColumn()
          識別子がGenerationType.IDENTITYで生成される場合に、 識別子をINSERT文に含める場合はtrueを返します。
 boolean isUniqueConstraintViolation(Throwable t)
          一意制約違反を原因とする例外であればtrueを返します。
 boolean needsParameterForResultSet()
          プロシージャの呼び出しで結果セットに対してパラメータが必要かどうかを返します。
 void setupJoin(FromClause fromClause, WhereClause whereClause, JoinType joinType, String tableName, String tableAlias, String fkTableAlias, String pkTableAlias, List<JoinColumnMeta> joinColumnMetaList, String lockHint)
          結合用のSQLを組み立てます。
 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 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 Set<String> entityExistsExceptionStateCode
EntityExistsExceptionに該当するSQLステートです。

コンストラクタの詳細

StandardDialect

public StandardDialect()
メソッドの詳細

getName

public 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 String convertLimitSql(String sql,
                              int offset,
                              int limit)
インタフェース DbmsDialect の記述:
limit用SQLに変換します。

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

getValueType

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

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

getValueType

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

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

getValueTypeInternal

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

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

setupJoin

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

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

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 String getIdentitySelectString(String tableName,
                                      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 String getSequenceNextValString(String sequenceName)
インタフェース DbmsDialect の記述:
識別子がGenerationType.SEQUENCEで自動生成される場合に、 シーケンスの値を取得するSQLを返します。

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

getDefaultBatchSize

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

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

getRowNumberFunctionName

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

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

convertLimitSqlByRowNumber

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

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

convertOrderBy

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

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

isUniqueConstraintViolation

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

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

getSQLState

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

例外チェーンに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 String getForUpdateString(SelectForUpdateType type,
                                 int waitSeconds,
                                 Pair<String,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 String getLockHintString(SelectForUpdateType type,
                                int waitSeconds)
インタフェース DbmsDialect の記述:
SELECT文に付加するロックヒントを返します。

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

supportsOuterJoinForUpdate

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

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


Copyright ? 2004-2008 The Seasar Foundation. All Rights Reserved.