クラス TableMergeTag
- java.lang.Object
-
- javax.servlet.jsp.tagext.TagSupport
-
- javax.servlet.jsp.tagext.BodyTagSupport
-
- org.opengion.hayabusa.taglib.CommonTagSupport
-
- org.opengion.hayabusa.taglib.TableMergeTag
-
- すべての実装されたインタフェース:
Serializable
,javax.servlet.jsp.tagext.BodyTag
,javax.servlet.jsp.tagext.IterationTag
,javax.servlet.jsp.tagext.JspTag
,javax.servlet.jsp.tagext.Tag
,javax.servlet.jsp.tagext.TryCatchFinally
public class TableMergeTag extends CommonTagSupport
2つの DBTableModel の 集合処理を行うタグです。 マスタとスレーブのそれぞれの DBTableModel を取得し、マージ、差分、排他などの データ処理を行います。結果を、指定の tableId と scope に書き出します。 マスタテーブルは、masterTableId と masterScope より取り出します。スレーブテーブルは、 slaveTableId と slaveScope より取り出します。 取り出された DBTableModel は、マスタテーブルに対して、スレーブテーブル情報を参照する形で行われ、 結果はマスタテーブルに上書きされる形で行われます。 指定できるアクションは、全体集合(UNION_ALL)、和集合(UNION)、積集合(INTERSECT)、 差集合(MINUS)、差分集合(DIFFERENCE)、列合成(UNION_CLM)、 列追加(ADD_CLM)、 グループ(GROUP)です。 列合成と列追加、グループ以外の処理では、カラム順とカラム数は同数でなければなりません。 primaryKeys や unionClms などの指定のキー名は、マスタテーブルに存在する必要があります。 マスタテーブルと同じカラム番号でスレーブテーブルよりデータを読み出します。 (カラム名や属性は、異なってもかまいませんが、マスタテーブルに準拠します。) また、単独(マスタテーブルのみ)で、和集合と同等の、グループ(GROUP)を使用すると、指定の カラムでのユニーク化を行うことが可能になります。グループ処理では、先行優先とし、 2回目に現れた情報を削除することになります。グループ が指定された場合は、 スレーブテーブルは無視されます。いずれの処理においても、集合処理を行う主キーで 一旦グループ化されます。全体集合(UNION_ALL)で処理する場合でも、主キーがユニークで ない場合は、マスター、スレーブの各テーブルで一旦グループ化された後で、マージされます。 (マージ後には、同一主キーを持つ行は存在します。) 全体集合(UNION_ALL)の場合のみ、mergeKeys を指定する必要はありません。その場合は、 キーなしのため、マスターとスレーブのテーブルを単に合成するだけになります。 6.9.1.0 (2018/02/26) UNION_VAL は、スレーブテーブルの縦列を横列に割り当てるUNION_CLMの特殊版です。 処理としては、そのまま割り当てるのではなく、スレーブテーブルの縦列の値と ヘッダーとして指定する、unionClms の値を比較して、下限値の最大値を割り当てます。 つまり、ヘッダーの値と同じか、それ以下で、最も近い値を割り当てることになります。 これは、時間的な推移を表現することになります。 masterKeys:マスタとスレーブを関連付ける共通のキーとなるカラム slaveKeys :スレーブの縦列を横列にするための、キーと値のカラム unionClms :横列にするカラム名。この値とスレーブのキーと比較してセットするかどうかを決めます。 処理前後でのDBTableModelの件数は、以下の変数で取得することが可能です。 処理前のマスターテーブル : {@DB.MASTER_COUNT} 処理前のスレーブテーブル : {@DB.SLAVE_COUNT} 処理後 : {@DB.COUNT}- 関連項目:
- 直列化された形式
- 導入されたバージョン:
- JDK5.0,
-
-
フィールドの概要
フィールド 修飾子とタイプ フィールド 説明 static String
ACT_ADD_CLM
action 引数に渡す事の出来る アクションコマンド 列合成"ADD_CLM"static String
ACT_CDKH
action 引数に渡す事の出来る アクションコマンド 改廃コード "CDKH"static String
ACT_DIFFERENCE
action 引数に渡す事の出来る アクションコマンド 差分集合"DIFFERENCE"static String
ACT_GROUP
action 引数に渡す事の出来る アクションコマンド グループ "GROUP"static String
ACT_INTERSECT
action 引数に渡す事の出来る アクションコマンド 積集合 "INTERSECT"static String
ACT_MINUS
action 引数に渡す事の出来る アクションコマンド 差集合"MINUS"static String
ACT_TABLE_REMOVE
action 引数に渡す事の出来る アクションコマンド DBTableModelの削除 "TABLE_REMOVE"static String
ACT_UNION
action 引数に渡す事の出来る アクションコマンド 和集合 "UNION"static String
ACT_UNION_ALL
action 引数に渡す事の出来る アクションコマンド 全体集合 "UNION_ALL"static String
ACT_UNION_CLM
action 引数に渡す事の出来る アクションコマンド 列合成"UNION_CLM"static String
ACT_UNION_SELROW
action 引数に渡す事の出来る アクションコマンド グループ "UNION_SELROW"static String
ACT_UNION_VAL
action 引数に渡す事の出来る アクションコマンド 列合成"UNION_VAL"static String
CMD_NEW
command 引数に渡す事の出来る コマンド 新規 "NEW"static String
CMD_RENEW
command 引数に渡す事の出来る コマンド 再検索 "RENEW"-
クラスから継承されたフィールド org.opengion.hayabusa.taglib.CommonTagSupport
BR, BUFFER_MIDDLE, CR
-
-
コンストラクタの概要
コンストラクタ コンストラクタ 説明 TableMergeTag()
デフォルトコンストラクター
-
メソッドの概要
すべてのメソッド インスタンス・メソッド concreteメソッド 修飾子とタイプ メソッド 説明 int
doEndTag()
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。protected void
release2()
タグリブオブジェクトをリリースします。void
setAction(String action)
【TAG】アクションを指定します[UNION_ALL/UNION/INTERSECT/MINUS/DIFFERENCE/UNION_CLM/UNION_VAL/ADD_CLM/GROUP/UNION_SELROW/CDKH/TABLE_REMOVE]。void
setCommand(String cmd)
【TAG】コマンド (NEW,RENEW)をセットします(初期値:NEW)。void
setDiffKeys(String diffKeys)
【TAG】マスタテーブルのDIFFERENCE時の差分カラム名を(CSV形式)指定します。void
setDisplay(String flag)
【TAG】マージの結果を表示するかどうか[true:する/false:しない]を指定します(初期値:true)。void
setGroupAddClms(String groupAddClms)
【TAG】集合処理するときに、相違データをCSV連結して残すカラム名をCSV形式で指定します。void
setMainTrans(String flag)
【TAG】(通常は使いません)タグで処理される処理がメインとなるトランザクション処理かどうかを指定します(初期値:true)。void
setMasterKeys(String masterKeys)
【TAG】マスタテーブルの集合処理を行う主キーを指定します。void
setMasterScope(String masterScope)
【TAG】マスタテーブルのscopeを指定します(初期値:session)。void
setMasterTableId(String masterTableId)
【TAG】マスタテーブルのtableIdを指定します (初期値:HybsSystem#TBL_MDL_KEY[=])。void
setModifyClms(String modifyClms)
【TAG】スレーブからマスタへ値を更新するカラム名をCSV形式で指定します。void
setNoSideEffect(String noSideEffect)
【TAG】テーブルモデルに対する副作用の有無[true:ない/false:ある]を指定します(初期値:false:ある)。void
setNullDelClms(String nullDelClms)
【TAG】指定の値がすべてnull(空文字列)の場合、レコードを削除するカラムをCSV形式で指定します。void
setScope(String scope)
【TAG】出力先のscopeを指定します(初期値:session)。void
setSeparator(String sepa)
【TAG】groupAddClmsで文字列を連結する項目区切り文字をセットします(初期値:",")。void
setSlaveKeys(String slaveKeys)
【TAG】スレーブテーブルの集合処理を行う主キーを指定します。void
setSlaveScope(String slaveScope)
【TAG】スレーブテーブルのscopeを指定します(初期値:session)。void
setSlaveTableId(String slaveTableId)
【TAG】スレーブテーブルのtableIdを指定します (初期値:HybsSystem#TBL_MDL_KEY[=])。void
setStopZero(String flag)
【TAG】検索結果が0件のとき処理を停止するかどうか[true/false]を指定します(初期値:false[続行する])。void
setTableId(String id)
【TAG】出力先のtableIdを指定します (初期値:HybsSystem#TBL_MDL_KEY[=])。void
setUnionClms(String unionClms)
【TAG】スレーブからマスタへ追加するカラム名をCSV形式で指定します。void
setUnionLbls(String unionLbls)
【TAG】スレーブからマスタへ追加するラベルをCSV形式で指定します。void
setUseCheckOnly(String flag)
【TAG】マスタテーブルの選択行のデータのみを対象に処理を行うかどうか[true:する/false:しない]を指定します(初期値:false)。void
setUseDiffData(String flag)
【TAG】差分のスレーブデータを結果テーブルに追加するかどうかを指定します(初期値:true)。void
setUseSlaveLoop(String flag)
【TAG】scope="request" のスレーブテーブルをループして使用するかどうか[true/false]を指定します(初期値:false[使用しない])。String
toString()
このオブジェクトの文字列表現を返します。-
クラスから継承されたメソッド org.opengion.hayabusa.taglib.CommonTagSupport
add, add, addEventColumn, addEventColumn, check, commitTableObject, debugPrint, doAfterBody, doCatch, doFinally, doStartTag, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getCSVParameter, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getHostName, getLabel, getLabelInterface, getLanguage, getLongLabel, getMsg, getMsglbl, getObject, getParameterNames, getParameterRows, getRequest, getRequestAttribute, getRequestCacheData, getRequestMethod, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getTagName, getTransaction, getUser, getUserEditInfo, getUserInfo, isAjaxSubmitRequest, isDebug, isNoTransitionRequest, isNull, jspPrint, makeUrl, removeContextAttribute, removeObject, removeRequestAttribute, removeSessionAttribute, set, setAjaxSubmitRequest, setCaseIf, setCaseKey, setCaseNN, setCaseNull, setCaseVal, setContextAttribute, setCookie, setDebug, setLanguage, setLbl, setNoTransitionRequest, setObject, setObject, setParameterNames, setParameterRows, setRequestAttribute, setRequestCacheData, setSessionAttribute, setUserInfo, startQueryTransaction, sys, sysBool, sysInt, useMainTrans, useQuotCheck, useTag, useXssCheck
-
クラスから継承されたメソッド javax.servlet.jsp.tagext.BodyTagSupport
doInitBody, getBodyContent, getPreviousOut, release, setBodyContent
-
クラスから継承されたメソッド javax.servlet.jsp.tagext.TagSupport
findAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValue
-
-
-
-
フィールドの詳細
-
ACT_UNION_ALL
public static final String ACT_UNION_ALL
action 引数に渡す事の出来る アクションコマンド 全体集合 "UNION_ALL"- 関連項目:
- 定数フィールド値
-
ACT_UNION
public static final String ACT_UNION
action 引数に渡す事の出来る アクションコマンド 和集合 "UNION"- 関連項目:
- 定数フィールド値
-
ACT_INTERSECT
public static final String ACT_INTERSECT
action 引数に渡す事の出来る アクションコマンド 積集合 "INTERSECT"- 関連項目:
- 定数フィールド値
-
ACT_MINUS
public static final String ACT_MINUS
action 引数に渡す事の出来る アクションコマンド 差集合"MINUS"- 関連項目:
- 定数フィールド値
-
ACT_DIFFERENCE
public static final String ACT_DIFFERENCE
action 引数に渡す事の出来る アクションコマンド 差分集合"DIFFERENCE"- 関連項目:
- 定数フィールド値
-
ACT_UNION_CLM
public static final String ACT_UNION_CLM
action 引数に渡す事の出来る アクションコマンド 列合成"UNION_CLM"- 関連項目:
- 定数フィールド値
-
ACT_UNION_VAL
public static final String ACT_UNION_VAL
action 引数に渡す事の出来る アクションコマンド 列合成"UNION_VAL"- 関連項目:
- 定数フィールド値
-
ACT_ADD_CLM
public static final String ACT_ADD_CLM
action 引数に渡す事の出来る アクションコマンド 列合成"ADD_CLM"- 関連項目:
- 定数フィールド値
-
ACT_GROUP
public static final String ACT_GROUP
action 引数に渡す事の出来る アクションコマンド グループ "GROUP"- 関連項目:
- 定数フィールド値
-
ACT_UNION_SELROW
public static final String ACT_UNION_SELROW
action 引数に渡す事の出来る アクションコマンド グループ "UNION_SELROW"- 関連項目:
- 定数フィールド値
-
ACT_CDKH
public static final String ACT_CDKH
action 引数に渡す事の出来る アクションコマンド 改廃コード "CDKH"- 関連項目:
- 定数フィールド値
-
ACT_TABLE_REMOVE
public static final String ACT_TABLE_REMOVE
action 引数に渡す事の出来る アクションコマンド DBTableModelの削除 "TABLE_REMOVE"- 関連項目:
- 定数フィールド値
-
-
コンストラクタの詳細
-
TableMergeTag
public TableMergeTag()
デフォルトコンストラクター
-
-
メソッドの詳細
-
doEndTag
public int doEndTag()
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。- 定義:
doEndTag
インタフェース内javax.servlet.jsp.tagext.Tag
- オーバーライド:
doEndTag
クラス内CommonTagSupport
- 戻り値:
- 後続処理の指示
-
release2
protected void release2()
タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。- オーバーライド:
release2
クラス内CommonTagSupport
-
setCommand
public void setCommand(String cmd)
【TAG】コマンド (NEW,RENEW)をセットします(初期値:NEW)。- パラメータ:
cmd
- コマンド (public static final 宣言されている文字列)- 関連項目:
- コマンド定数
-
setAction
public void setAction(String action)
【TAG】アクションを指定します[UNION_ALL/UNION/INTERSECT/MINUS/DIFFERENCE/UNION_CLM/UNION_VAL/ADD_CLM/GROUP/UNION_SELROW/CDKH/TABLE_REMOVE]。- パラメータ:
action
- アクション [UNION_ALL/UNION/INTERSECT/MINUS/DIFFERENCE/UNION_CLM/ADD_CLM/GROUP/UNION_SELROW/CDKH]
-
setTableId
public void setTableId(String id)
【TAG】出力先のtableIdを指定します (初期値:HybsSystem#TBL_MDL_KEY[=])。- パラメータ:
id
- テーブルID (sessionに登録する時のID)- 関連項目:
HybsSystem.TBL_MDL_KEY
-
setScope
public void setScope(String scope)
【TAG】出力先のscopeを指定します(初期値:session)。- オーバーライド:
setScope
クラス内CommonTagSupport
- パラメータ:
scope
- 出力先のscope- 関連項目:
CommonTagSupport.getScope()
-
setMasterTableId
public void setMasterTableId(String masterTableId)
【TAG】マスタテーブルのtableIdを指定します (初期値:HybsSystem#TBL_MDL_KEY[=])。- パラメータ:
masterTableId
- マスタテーブルID- 関連項目:
HybsSystem.TBL_MDL_KEY
-
setMasterScope
public void setMasterScope(String masterScope)
【TAG】マスタテーブルのscopeを指定します(初期値:session)。- パラメータ:
masterScope
- マスタスコープ
-
setMasterKeys
public void setMasterKeys(String masterKeys)
【TAG】マスタテーブルの集合処理を行う主キーを指定します。- パラメータ:
masterKeys
- マスタテーブル主キー (CSV形式)
-
setSlaveKeys
public void setSlaveKeys(String slaveKeys)
【TAG】スレーブテーブルの集合処理を行う主キーを指定します。- パラメータ:
slaveKeys
- スレーブ主キー (CSV形式)
-
setDiffKeys
public void setDiffKeys(String diffKeys)
【TAG】マスタテーブルのDIFFERENCE時の差分カラム名を(CSV形式)指定します。- パラメータ:
diffKeys
- 差分カラム名 (CSV形式)- 関連項目:
setMasterKeys( String )
-
setSlaveTableId
public void setSlaveTableId(String slaveTableId)
【TAG】スレーブテーブルのtableIdを指定します (初期値:HybsSystem#TBL_MDL_KEY[=])。- パラメータ:
slaveTableId
- スレーブテーブルID- 関連項目:
HybsSystem.TBL_MDL_KEY
-
setSlaveScope
public void setSlaveScope(String slaveScope)
【TAG】スレーブテーブルのscopeを指定します(初期値:session)。- パラメータ:
slaveScope
- スレーブスコープ
-
setUnionClms
public void setUnionClms(String unionClms)
【TAG】スレーブからマスタへ追加するカラム名をCSV形式で指定します。- パラメータ:
unionClms
- 列合成カラム名 (CSV形式)
-
setUnionLbls
public void setUnionLbls(String unionLbls)
【TAG】スレーブからマスタへ追加するラベルをCSV形式で指定します。- パラメータ:
unionLbls
- 列合成カラム名 (CSV形式)
-
setNullDelClms
public void setNullDelClms(String nullDelClms)
【TAG】指定の値がすべてnull(空文字列)の場合、レコードを削除するカラムをCSV形式で指定します。- パラメータ:
nullDelClms
- null(空文字列)の場合、レコードを削除するカラムをCSV形式で指定
-
setModifyClms
public void setModifyClms(String modifyClms)
【TAG】スレーブからマスタへ値を更新するカラム名をCSV形式で指定します。- パラメータ:
modifyClms
- 値更新カラム名 (CSV形式)
-
setGroupAddClms
public void setGroupAddClms(String groupAddClms)
【TAG】集合処理するときに、相違データをCSV連結して残すカラム名をCSV形式で指定します。- パラメータ:
groupAddClms
- 相違データCSV連結 (CSV形式)
-
setNoSideEffect
public void setNoSideEffect(String noSideEffect)
【TAG】テーブルモデルに対する副作用の有無[true:ない/false:ある]を指定します(初期値:false:ある)。- パラメータ:
noSideEffect
- 処理結果副作用 [true:ない/false:ある]
-
setUseDiffData
public void setUseDiffData(String flag)
【TAG】差分のスレーブデータを結果テーブルに追加するかどうかを指定します(初期値:true)。- パラメータ:
flag
- 差分追加 [true:追加する/false:追加しない]
-
setUseCheckOnly
public void setUseCheckOnly(String flag)
【TAG】マスタテーブルの選択行のデータのみを対象に処理を行うかどうか[true:する/false:しない]を指定します(初期値:false)。- パラメータ:
flag
- 選択行のみ対象 [true:選択行のみ/false:全件]
-
setDisplay
public void setDisplay(String flag)
【TAG】マージの結果を表示するかどうか[true:する/false:しない]を指定します(初期値:true)。- パラメータ:
flag
- 結果表示 [true:する/false:しない]
-
setStopZero
public void setStopZero(String flag)
【TAG】検索結果が0件のとき処理を停止するかどうか[true/false]を指定します(初期値:false[続行する])。- パラメータ:
flag
- 0件時停止 [true:処理を中止する/false:続行する]
-
setUseSlaveLoop
public void setUseSlaveLoop(String flag)
【TAG】scope="request" のスレーブテーブルをループして使用するかどうか[true/false]を指定します(初期値:false[使用しない])。 action="UNION_CLM" では、カラムを動的に追加していきます。これを、繰り返すことで、特定の処理結果を、 カラム列にコピーしていく処理が可能になります。(クロステーブル的な処理です。) 内容的には、scope="request" の同一の DBTableModel を、初回に、scope="session" にコピーすることで、 以後、マスターテーブルとして処理を続けるというものです。 初回かどうかを判別するのは、scope="session" の DBTableModel が存在しない場合は、scope="request" のDBTableModel を scope="session" に移すだけの処理を行います。 以降は、scope="session" に、DBTableModel が存在するはずなので、これを、マスターテーブルとして使用します。 scope="session" の DBTableModel を消すのは、action="TABLE_REMOVE" です。- パラメータ:
flag
- スレーブテーブルをループして使用するかどうか [true:使用する/false:使用しない]
-
setMainTrans
public void setMainTrans(String flag)
【TAG】(通常は使いません)タグで処理される処理がメインとなるトランザクション処理かどうかを指定します(初期値:true)。- パラメータ:
flag
- メイントランザクションかどうか [true:メイン/false:その他]
-
setSeparator
public void setSeparator(String sepa)
【TAG】groupAddClmsで文字列を連結する項目区切り文字をセットします(初期値:",")。- パラメータ:
sepa
- 項目区切り文字 (初期値:",")
-
toString
public String toString()
このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。- オーバーライド:
toString
クラス内CommonTagSupport
- 戻り値:
- このクラスの文字列表現
-
-