クラス TableMergeTag
java.lang.Object
jakarta.servlet.jsp.tagext.TagSupport
jakarta.servlet.jsp.tagext.BodyTagSupport
org.opengion.hayabusa.taglib.CommonTagSupport
org.opengion.hayabusa.taglib.TableMergeTag
- すべての実装されたインタフェース:
BodyTag
,IterationTag
,JspTag
,Tag
,TryCatchFinally
,Serializable
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}
- 関連項目:
- 変更履歴:
- 3.8.0.9 (2005/10/17) 新規追加
- 機能分類
- DB登録
- 形式サンプル:
- ●形式: ・<og:tableMerge action = "UNION_ALL|UNION|INTERSECT|MINUS|DIFFERENCE|UNION_CLM|UNION_VAL|ADD_CLM|GROUP|UNION_SELROW|CDKH|TABLE_REMOVE" tableId = "DEFAULT" 出力テーブルの tableId scope = "session" 出力テーブルの scope masterTableId = "DEFAULT" マスタテーブルの tableId masterScope = "session" マスタテーブルの scope slaveTableId = "DEFAULT" スレーブテーブルの tableId slaveScope = "request" スレーブテーブルの scope masterKeys = "AA,BB,CC" マスタテーブルの集合処理を行う主キー slaveKeys = "AA,BB,CC" スレーブテーブルの集合処理を行う主キー(null時=masterKeys) diffKeys = "DD,EE" マスタテーブルのDIFFERENCE時の差分カラム名 unionClms = "DD,EE" UNION_CLM,ADD_CLM時にスレーブからマスタへ追加するカラム名 unionLbls = "dd,ee" UNION_CLM,ADD_CLM時にスレーブからマスタへ追加するカラムのラベル名 6.9.1.0 (2018/02/26) modifyClms = "FF,GG" DIFFERENCE,CDKH時にスレーブからマスタへ値を更新するカラム名 noSideEffect = "false" テーブルモデルに対する副作用(true:ない/false:ある) useDiffData = "true" DIFFERENCE時に差分のスレーブデータを追加するかどうか useCheckOnly = "false" マスタテーブルの選択行のデータのみを対象に処理を行うかどうか groupAddClms = "FF,GG" masterKeysで集合処理するときに、相違データをCSV連結して残すカラム名 display = "true" 処理概要を表示するかどうか /> ●body:なし ●Tag定義: <og:tableMerge command 【TAG】コマンド (NEW,RENEW)をセットします(初期値:NEW) action 【TAG】アクションを指定します(UNION_ALL|UNION|INTERSECT|MINUS|DIFFERENCE|UNION_CLM|UNION_VAL|ADD_CLM|GROUP|UNION_SELROW|CDKH|TABLE_REMOVE) tableId 【TAG】出力先のtableIdを指定します (初期値:HybsSystem#TBL_MDL_KEY[=h_tblmdl]) scope 【TAG】出力先のscopeを指定します(初期値:session) masterTableId 【TAG】マスタテーブルのtableIdを指定します (初期値:HybsSystem#TBL_MDL_KEY[=h_tblmdl]) masterScope 【TAG】マスタテーブルのscopeを指定します(初期値:session) slaveTableId 【TAG】スレーブテーブルのtableIdを指定します (初期値:HybsSystem#TBL_MDL_KEY[=h_tblmdl]) slaveScope 【TAG】スレーブテーブルのscopeを指定します(初期値:session) masterKeys 【TAG】マスタテーブルの集合処理を行う主キーを指定します slaveKeys 【TAG】スレーブテーブルの集合処理を行う主キーを指定します diffKeys 【TAG】マスタテーブルのDIFFERENCE時の差分カラム名を(CSV形式)指定します unionClms 【TAG】スレーブからマスタへ追加するカラム名をCSV形式で指定します unionLbls 【TAG】スレーブからマスタへ追加するラベルをCSV形式で指定します 6.9.1.0 (2018/02/26) nullDelClms 【TAG】指定の値がすべてnull(空文字列)の場合、レコードを削除するカラムをCSV形式で指定します useSlaveLoop 【TAG】scope="request" のスレーブテーブルを、ループ処理して使用します(action="TABLE_REMOVE" と、"UNION_CLM" で、利用します) modifyClms 【TAG】DIFFERENCE,CDKH時にスレーブからマスタへ値を更新するカラム名をCSV形式で指定します groupAddClms 【TAG】集合処理するときに、相違データをCSV連結して残すカラム名をCSV形式で指定します noSideEffect 【TAG】テーブルモデルに対する副作用の有無[true:ない/false:ある]を指定します(初期値:false:ある) useDiffData 【TAG】差分のスレーブデータを結果テーブルに追加するかどうかを指定します(初期値:true) useCheckOnly 【TAG】マスタテーブルの選択行のデータのみを対象に処理を行うかどうかを指定します(初期値:false) stopZero 【TAG】検索結果が0件のとき処理を続行するかどうか[true/false]を指定します(初期値:false[続行する]) display 【TAG】マージの結果を表示するかどうかを指定します(初期値:true) mainTrans 【TAG】(通常は使いません)タグで処理される処理がメインとなるトランザクション処理かどうかを指定します(初期値:false) caseKey 【TAG】このタグ自体を利用するかどうかの条件キーを指定します(初期値:null) caseVal 【TAG】このタグ自体を利用するかどうかの条件値を指定します(初期値:null) caseNN 【TAG】指定の値が、null/ゼロ文字列 でない場合(Not Null=NN)は、このタグは使用されます(初期値:判定しない) caseNull 【TAG】指定の値が、null/ゼロ文字列 の場合は、このタグは使用されます(初期値:判定しない) caseIf 【TAG】指定の値が、true/TRUE文字列の場合は、このタグは使用されます(初期値:判定しない) separator 【TAG】groupAddClmsで文字列を連結する項目区切り文字をセットします(初期値:",") debug 【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false) /> ●使用例 例1)デフォルト以外に必要な属性のみ指定するサンプル <og:tableMerge action="UNION" slaveScope = "request" masterKeys = "AA,BB,CC" /> ・出力先、マスターともに初期値は、tableId="DEFAULT" scope="session" です。 スレーブは、tableId か scope をける必要がある為、scope="request" を指定しています。 比較するカラム名は、マスタ、スレーブ同じであれば、マスタのみ指定でかまいません。 例2)マスタ、スレーブともメモリに残らないように request で作成します。 <og:tableMerge action="INTERSECT" masterScope = "request" slaveScope = "request" slaveTableId = "SLAVE" masterKeys = "AA,BB,CC" /> ・マスタ、スレーブともメモリに残らないように request で作成した場合は、 どちらかの TableId を変える必要があります。 出力先は初期値の、tableId="DEFAULT" scope="session" です。
- 導入されたバージョン:
- JDK5.0,
-
フィールドの概要
フィールド修飾子とタイプフィールド説明static final String
action 引数に渡す事の出来る アクションコマンド 列合成"ADD_CLM"static final String
action 引数に渡す事の出来る アクションコマンド 改廃コード "CDKH"static final String
action 引数に渡す事の出来る アクションコマンド 差分集合"DIFFERENCE"static final String
action 引数に渡す事の出来る アクションコマンド グループ "GROUP"static final String
action 引数に渡す事の出来る アクションコマンド 積集合 "INTERSECT"static final String
action 引数に渡す事の出来る アクションコマンド 差集合"MINUS"static final String
action 引数に渡す事の出来る アクションコマンド DBTableModelの削除 "TABLE_REMOVE"static final String
action 引数に渡す事の出来る アクションコマンド 和集合 "UNION"static final String
action 引数に渡す事の出来る アクションコマンド 全体集合 "UNION_ALL"static final String
action 引数に渡す事の出来る アクションコマンド 列合成"UNION_CLM"static final String
action 引数に渡す事の出来る アクションコマンド グループ "UNION_SELROW"static final String
action 引数に渡す事の出来る アクションコマンド 列合成"UNION_VAL"static final String
command 引数に渡す事の出来る コマンド 新規 "NEW"static final String
command 引数に渡す事の出来る コマンド 再検索 "RENEW"クラスから継承されたフィールド org.opengion.hayabusa.taglib.CommonTagSupport
BR, BUFFER_MIDDLE, CR
クラスから継承されたフィールド jakarta.servlet.jsp.tagext.BodyTagSupport
bodyContent
クラスから継承されたフィールド jakarta.servlet.jsp.tagext.TagSupport
id, pageContext
インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.BodyTag
EVAL_BODY_BUFFERED, EVAL_BODY_TAG
インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.IterationTag
EVAL_BODY_AGAIN
インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.Tag
EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE
-
コンストラクタの概要
コンストラクタ -
メソッドの概要
修飾子とタイプメソッド説明int
doEndTag()
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。protected void
release2()
タグリブオブジェクトをリリースします。void
【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
【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[使用しない])。toString()
このオブジェクトの文字列表現を返します。クラスから継承されたメソッド org.opengion.hayabusa.taglib.CommonTagSupport
add, add, addEventColumn, addEventColumn, check, commitTableObject, debugPrint, 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, useStrict, useTag, useXssCheck
クラスから継承されたメソッド jakarta.servlet.jsp.tagext.BodyTagSupport
doInitBody, getBodyContent, getPreviousOut, release, setBodyContent
クラスから継承されたメソッド jakarta.servlet.jsp.tagext.TagSupport
findAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValue
クラスから継承されたメソッド java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
インタフェースから継承されたメソッド jakarta.servlet.jsp.tagext.Tag
getParent, setPageContext, setParent
-
フィールド詳細
-
ACT_UNION_ALL
action 引数に渡す事の出来る アクションコマンド 全体集合 "UNION_ALL"- 関連項目:
-
ACT_UNION
action 引数に渡す事の出来る アクションコマンド 和集合 "UNION"- 関連項目:
-
ACT_INTERSECT
action 引数に渡す事の出来る アクションコマンド 積集合 "INTERSECT"- 関連項目:
-
ACT_MINUS
action 引数に渡す事の出来る アクションコマンド 差集合"MINUS"- 関連項目:
-
ACT_DIFFERENCE
action 引数に渡す事の出来る アクションコマンド 差分集合"DIFFERENCE"- 関連項目:
-
ACT_UNION_CLM
action 引数に渡す事の出来る アクションコマンド 列合成"UNION_CLM"- 関連項目:
-
ACT_UNION_VAL
action 引数に渡す事の出来る アクションコマンド 列合成"UNION_VAL"- 関連項目:
-
ACT_ADD_CLM
action 引数に渡す事の出来る アクションコマンド 列合成"ADD_CLM"- 関連項目:
-
ACT_GROUP
action 引数に渡す事の出来る アクションコマンド グループ "GROUP"- 関連項目:
-
ACT_UNION_SELROW
action 引数に渡す事の出来る アクションコマンド グループ "UNION_SELROW"- 関連項目:
-
ACT_CDKH
action 引数に渡す事の出来る アクションコマンド 改廃コード "CDKH"- 関連項目:
-
ACT_TABLE_REMOVE
action 引数に渡す事の出来る アクションコマンド DBTableModelの削除 "TABLE_REMOVE"- 関連項目:
-
CMD_NEW
command 引数に渡す事の出来る コマンド 新規 "NEW"- 関連項目:
-
CMD_RENEW
command 引数に渡す事の出来る コマンド 再検索 "RENEW"- 関連項目:
-
-
コンストラクタの詳細
-
TableMergeTag
public TableMergeTag()デフォルトコンストラクター- 変更履歴:
- 6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.
-
-
メソッドの詳細
-
doEndTag
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。- 定義:
doEndTag
インタフェース内Tag
- オーバーライド:
doEndTag
クラス内CommonTagSupport
- 戻り値:
- 後続処理の指示
- 変更履歴:
- 4.3.2.0 (2008/09/11) UNION_SELROWアクション対応, 4.3.3.0 (2008/10/01) 処理前後のテーブル件数を取得できるようにする, 4.3.3.1 (2008/10/08) スレーブのnullチェック追加, 5.1.6.0 (2010/05/01) DBLastSqlの処理は、DBTableModelが新規作成された処理でのみ行う。, 5.2.2.0 (2010/11/01) caseKey、caseVal 属性対応, 5.7.6.2 (2014/05/16) stopZero属性、DB.COUNT キーで検索件数をリクエストにセットする。, 6.3.1.1 (2015/07/10) Map作成時に、DBTableModel のグループ化を行うかどうか指定できるようにする。, 6.3.1.1 (2015/07/10) 改廃コードを設定する CDKH アクションを追加, 6.3.4.0 (2015/08/01) Arrays.toString から String.join に置き換え。, 6.4.3.4 (2016/03/11) String配列 から、Setに置き換えます。, 6.4.4.1 (2016/03/18) StringBuilderの代わりに、OgBuilderを使用する。, 6.7.3.0 (2017/01/27) useSlaveLoop,nullDelClms属性追加と、action="TABLE_REMOVE" の追加, 6.9.1.0 (2018/02/26) ACT_UNION_VAL追加, 8.5.6.1 (2024/03/29) PMD 7.0.0 Finding duplicated code with CPD (積集合と差集合を統一)
-
release2
タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。- オーバーライド:
release2
クラス内CommonTagSupport
- 変更履歴:
- 5.1.4.0 (2010/03/01) groupAddClms 追加, 5.1.6.0 (2010/05/01) DBLastSqlの処理は、DBTableModelが新規作成された処理でのみ行う。, 5.3.1.0 (2011/01/01) separator追加, 5.7.6.2 (2014/05/16) stopZero属性追加, 6.7.3.0 (2017/01/27) useSlaveLoop,nullDelClms属性追加
-
setCommand
【TAG】コマンド (NEW,RENEW)をセットします(初期値:NEW)。- パラメータ:
cmd
- コマンド (public static final 宣言されている文字列)- 関連項目:
- 説明:
- コマンドは、HTMLから(get/post)指定されますので、CMD_xxx で設定される フィールド定数値のいづれかを、指定できます。 初期値は NEW です。
-
setAction
【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]- 説明:
- 指定できるアクションは、全体集合(UNION_ALL)、全体集合(挿入位置指定)(UNION_SELROW)、和集合(UNION)、
積集合(INTERSECT)、差集合(MINUS)、差分集合(DIFFERENCE)、列合成(UNION_CLM)、値列合成(UNION_VAL)、列追加(ADD_CLM)、グループ(GROUP)です。
列合成とグループ以外の処理では、カラム順とカラム数は同数でなければなりません。
primaryKeys や unionClms などの指定のキー名は、マスタテーブルに存在する必要があります。
マスタテーブルと同じカラム番号でスレーブテーブルよりデータを読み出します。
(カラム名や属性は、異なってもかまいませんが、マスタテーブルに準拠します。)
また、単独(マスタテーブルのみ)で、和集合と同等の、グループ(GROUP)を使用すると、指定の
カラムでのユニーク化を行うことが可能になります。グループ処理では、先行優先とし、
2回目に現れた情報を削除することになります。グループ が指定された場合は、
スレーブテーブルは無視されます。いずれの処理においても、集合処理を行う主キーで
一旦グループ化されます。全体集合(UNION_ALL)で処理する場合でも、主キーがユニークで
ない場合は、マスター、スレーブの各テーブルで一旦グループ化された後で、マージされます。
(マージ後には、同一主キーを持つ行は存在します。)
全体集合(UNION_ALL)の場合のみ、mergeKeys を指定する必要はありません。その場合は、
キーなしのため、マスターとスレーブのテーブルを単に合成するだけになります。
アクションの説明 action 名称 処理概要 1 2 3 4 UNION_ALL 全体集合 マスタとスレーブを合成 ○ ○ UNION 和集合 マスタとスレーブのユニーク部のみ合成 ○ ○ INTERSECT 積集合 マスタとスレーブのユニーク部が一致するマスタのみ選択 ○ ○ MINUS 差集合 マスタからスレーブに存在するユニーク部を削除した残り ○ ○ DIFFERENCE 差分集合 ユニーク部が一致し、差分カラムが異なるマスタのみ選択 ○ ○ ○ UNION_CLM 列合成 マスタとキー一致するスレーブのカラム情報を追加 ○ ○ ○ UNION_VAL 値列合成 マスタとキー一致するスレーブの縦列をカラムに追加 ○ ○ ○ ADD_CLM 列追加 UNION_CLMとの違いは、カラムのみ追加することです。 ○ GROUP グループ マスタのユニーク部化 UNION_SELROW 全体集合 マスタとスレーブを合成(マスタ表のチェック行を起点に追加 ○ CDKH 改廃CD 改廃コードを設定 ○ ○ ○ TABLE_REMOVE TBL削除 マスタテーブルオブジェクトを無条件で、削除します
-
setTableId
【TAG】出力先のtableIdを指定します (初期値:HybsSystem#TBL_MDL_KEY[=])。- パラメータ:
id
- テーブルID (sessionに登録する時のID)- 関連項目:
- 説明:
- 集合処理結果の DBTableModel をメモリにセットする場合のキー(tableId)を指定します。 (初期値:HybsSystem#TBL_MDL_KEY[=])。
-
setScope
【TAG】出力先のscopeを指定します(初期値:session)。- オーバーライド:
setScope
クラス内CommonTagSupport
- パラメータ:
scope
- 出力先のscope- 関連項目:
- 説明:
- 集合処理結果の DBTableModel をメモリにセットする場合のスコープを指定します。 ここでは、マスタやスレーブのスコープ設定が必要な為、superクラスのメソッドを オーバーライドしてこのオブジェクト内でキープしています。 初期値は、session です。
-
setMasterTableId
【TAG】マスタテーブルのtableIdを指定します (初期値:HybsSystem#TBL_MDL_KEY[=])。- パラメータ:
masterTableId
- マスタテーブルID- 関連項目:
- 説明:
- 集合処理のマスタとなる DBTableModel をメモリから取り出す場合のキー(tableId)を指定します。 (初期値:HybsSystem#TBL_MDL_KEY[=])。
-
setMasterScope
【TAG】マスタテーブルのscopeを指定します(初期値:session)。- パラメータ:
masterScope
- マスタスコープ- 説明:
- 集合処理のマスタとなる DBTableModel をメモリから取り出す場合のスコープを指定します。 初期値は、session です。
-
setMasterKeys
【TAG】マスタテーブルの集合処理を行う主キーを指定します。- パラメータ:
masterKeys
- マスタテーブル主キー (CSV形式)- 説明:
- 集合処理を行う場合の、カラム名を、CSV形式(CSV形式)で指定します。 このキーの組み合わせを元に、集合処理の突合せを行います。 なお、アクションがグループ(GROUP)以外の処理では、マスタとスレーブのカラム数と 並び順は、同じでなければなりません。カラム名は、各々別々でもかまいません。 アクションが全体集合(UNION_ALL)以外の場合は、必須属性になります。
-
setSlaveKeys
【TAG】スレーブテーブルの集合処理を行う主キーを指定します。- パラメータ:
slaveKeys
- スレーブ主キー (CSV形式)- 説明:
- 集合処理を行う場合の、カラム名を、CSV形式(CSV形式)で指定します。 このキーの組み合わせを元に、集合処理の突合せを行います。 なお、アクションがグループ(GROUP)以外の処理では、マスタとスレーブのカラム数と 並び順は、同じでなければなりません。カラム名は、各々別々でもかまいません。 null の場合は、masterKeys と同じとします。
-
setDiffKeys
【TAG】マスタテーブルのDIFFERENCE時の差分カラム名を(CSV形式)指定します。- パラメータ:
diffKeys
- 差分カラム名 (CSV形式)- 関連項目:
- 説明:
- アクションが差分処理(DIFFERENCE)の場合に、差分チェックを行うカラム名を、 CSV形式(CSV形式)で指定します。 差分処理とは、masterKeys で指定されたキーでは、マスタ、スレーブともに存在し かつ、このキー(diffKeys)で指定されたキーの値が異なるマスタレコードを 抜き出します。 つまり、主キーは存在し、属性が異なる情報のピックアップになりますので、 データ更新(UPDATE)対象を見つける場合に使用できます。 アクションが差分処理(DIFFERENCE)の場合は、必須属性になります。
-
setSlaveTableId
【TAG】スレーブテーブルのtableIdを指定します (初期値:HybsSystem#TBL_MDL_KEY[=])。- パラメータ:
slaveTableId
- スレーブテーブルID- 関連項目:
- 説明:
- 集合処理のスレーブとなる DBTableModel をメモリから取り出す場合のキー(tableId)を指定します。 なお、アクションがグループ(GROUP)の場合は、スレーブテーブルは使用されません。 (初期値:HybsSystem#TBL_MDL_KEY[=])。
-
setSlaveScope
【TAG】スレーブテーブルのscopeを指定します(初期値:session)。- パラメータ:
slaveScope
- スレーブスコープ- 説明:
- 集合処理のスレーブとなる DBTableModel をメモリから取り出す場合のスコープを指定します。 なお、アクションがグループ(GROUP)の場合は、スレーブテーブルは使用されません。 初期値は、session です。
-
setUnionClms
【TAG】スレーブからマスタへ追加するカラム名をCSV形式で指定します。- パラメータ:
unionClms
- 列合成カラム名 (CSV形式)- 説明:
- アクションが列合成(UNION_CLM)、値列合成(UNION_VAL)または列追加(ADD_CLM)の場合に使用されます。 列合成(UNION_CLM)は、マスタとスレーブの主キーに対して、ここで指定のスレーブの カラム列名を、マスタの列に追加します。主キーがマッチしない行に関しては、 カラムの初期値が適用されたデータを作成します。 列追加(ADD_CLM)は、マスタテーブルに指定のカラムを追加するだけです、スレーブテーブルは 参照しません。よって、主キーも指定不要です。
-
setUnionLbls
【TAG】スレーブからマスタへ追加するラベルをCSV形式で指定します。- パラメータ:
unionLbls
- 列合成カラム名 (CSV形式)- 変更履歴:
- 6.9.1.0 (2018/02/26) unionLbls属性追加
- 説明:
- アクションが列合成(UNION_CLM)、値列合成(UNION_VAL)または列追加(ADD_CLM)の場合に、 unionClmsと共に使用されます。 特に、値列合成(UNION_VAL)時のカラムは、縦列の値からカラムを作成する関係で、 通常カラムリソースに存在しません。 そこで、キーをそのままヘッダーに表示する場合に、不都合が発生する場合があるため、 ラベルを置き換える機能を用意します。
-
setNullDelClms
【TAG】指定の値がすべてnull(空文字列)の場合、レコードを削除するカラムをCSV形式で指定します。- パラメータ:
nullDelClms
- null(空文字列)の場合、レコードを削除するカラムをCSV形式で指定- 変更履歴:
- 6.7.3.0 (2017/01/27) nullDelClms属性追加
- 説明:
- アクションが(GROUP)で、指定のカラム列の値が、すべてnull(空文字列)の場合は、 そのレコード自身を削除します。
-
setModifyClms
【TAG】スレーブからマスタへ値を更新するカラム名をCSV形式で指定します。- パラメータ:
modifyClms
- 値更新カラム名 (CSV形式)- 説明:
- アクションが差分処理(DIFFERENCE)、改廃CD(CDKH)の場合に、結果にマスタテーブルが抜き出されますが、 更新する場合に、スレーブ特有のユニークキー(例:UNIQ)を用いて更新する場合、 指定のカラム値は、スレーブの値にセットしておきたい場合があります。 ここでは、指定のカラムについて、値だけスレーブからマスタへセットします。 なお、値の更新については、マスタとスレーブが同一キーという制約があります。
-
setGroupAddClms
【TAG】集合処理するときに、相違データをCSV連結して残すカラム名をCSV形式で指定します。- パラメータ:
groupAddClms
- 相違データCSV連結 (CSV形式)- 変更履歴:
- 5.1.4.0 (2010/03/01) 新規追加
- 説明:
- masterKeysで集合処理するときに、通常、最初に見つかった行データのみ残りますが、 ここに指定したカラムについては、発生都度、自分自身の情報に、CSV形式で連結して いきます。 この操作により、本来削除された情報が、1行のCSV形式で取得できる効果が得られます。 これは、value タグの action="APPEND" を、DBTableModel に対して実施するような感じです。
-
setNoSideEffect
【TAG】テーブルモデルに対する副作用の有無[true:ない/false:ある]を指定します(初期値:false:ある)。- パラメータ:
noSideEffect
- 処理結果副作用 [true:ない/false:ある]- 説明:
- すべての処理で、DBTableModel に対して、ユニーク化やグループ化などの集合処理を 行う過程で、マスタテーブルに対して直接処理を行うと、副作用が発生します。 同様に、スレーブテーブルにおいても、一旦キー列でグループ化されるため、副作用が 発生します。これは、無駄なメモリ領域の確保と、テーブル(マスタ、スレーブとも)の コピー処理時間の節約になります。初期値の設定も副作用がある状態になっています。 ところが、都合によっては、色々な action を連続して行いたい場合など、毎回、 データベースを検索するよりもメモリ上でコピーしたほうが都合がよいケースでは、 副作用が出ないように、noSideEffect="true" に設定します。 ただし、マスタ、スレーブともテーブルをコピーを行い、結果のテーブルも派生する為、 通常、2つの領域(マスタと結果は同じテーブルに書かれる)で良い所を、5つの領域が 作成されます。 初期値は、副作用がある(noSideEffect="false")です。
-
setUseDiffData
【TAG】差分のスレーブデータを結果テーブルに追加するかどうかを指定します(初期値:true)。- パラメータ:
flag
- 差分追加 [true:追加する/false:追加しない]- 説明:
- アクションが差分処理(DIFFERENCE)の場合に、結果にマスタテーブルが抜き出されますが、 差分対象のスレーブデータと比較したい場合があります。 このフラグを true にセットすると、書込み禁止属性が付いた状態で、スレーブデータが 結果テーブルに追加されます。 なお、この処理では、通常と異なり、マスタテーブルにはグループ化の副作用は発生しますが、 結果テーブルは新規に作成され、先頭行に必ず WRITABLE カラムが付加されます。 初期値は、true:追加する です。
-
setUseCheckOnly
【TAG】マスタテーブルの選択行のデータのみを対象に処理を行うかどうか[true:する/false:しない]を指定します(初期値:false)。- パラメータ:
flag
- 選択行のみ対象 [true:選択行のみ/false:全件]- 説明:
- 処理対象のマスタテーブルについて、選択行が指定された場合に、選択行のみを処理対象に するか、全件を対象にするかを指定します。 積集合や差分集合など通常は、全件を対象にすることになりますが、列合成や列追加など、 マスタテーブルに対してのみ作用を及ぼす処理では、選択行のみを対象に処理を行う事が 考えられます。その場合、初期グループ化と同じで、対象とする行が選択行のみになります。 初期値は、false:全件対象 です。
-
setDisplay
【TAG】マージの結果を表示するかどうか[true:する/false:しない]を指定します(初期値:true)。- パラメータ:
flag
- 結果表示 [true:する/false:しない]- 説明:
- true で、マージ結果を表示します。 false では、何も表示しません(初期値:true) マスタテーブルの件数は、通常、キーでグループ化されるため、入力件数と異なります。 同様に、スレーブ件数も異なります。結果の件数は、処理結果が現実的かどうかの 判断に使用されます。 初期値は、true:表示する です。
-
setStopZero
【TAG】検索結果が0件のとき処理を停止するかどうか[true/false]を指定します(初期値:false[続行する])。- パラメータ:
flag
- 0件時停止 [true:処理を中止する/false:続行する]- 変更履歴:
- 5.7.6.2 (2014/05/16) 新規追加
- 説明:
- 初期値は、false(続行する)です。
-
setUseSlaveLoop
【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:使用しない]- 変更履歴:
- 6.7.3.0 (2017/01/27) useSlaveLoop属性追加
- 説明:
- 初期値は、false(使用しない)です。
-
setMainTrans
【TAG】(通常は使いません)タグで処理される処理がメインとなるトランザクション処理かどうかを指定します(初期値:true)。- パラメータ:
flag
- メイントランザクションかどうか [true:メイン/false:その他]- 変更履歴:
- 5.1.6.0 (2010/05/01) 新規作成
- 説明:
- この値は、ファイルダウンロード処理に影響します。この値がtrueに指定された時にcommitされたDBTableModelが ファイルダウンロードの対象の表になります。 このパラメーターは、通常、各タグにより実装され、ユーザーが指定する必要はありません。 但し、1つのJSP内でDBTableModelが複数生成される場合に、前に処理したDBTableModelについてファイルダウンロードをさせたい 場合は、後ろでDBTableModelを生成するタグで、明示的にこの値をfalseに指定することで、ファイルダウンロード処理の対象から 除外することができます。
-
setSeparator
【TAG】groupAddClmsで文字列を連結する項目区切り文字をセットします(初期値:",")。- パラメータ:
sepa
- 項目区切り文字 (初期値:",")- 変更履歴:
- 5.3.1.0 (2011/01/01)
- 説明:
- groupAddClmsで文字列を連結する項目区切り文字をセットします(初期値:",")。 初期値は、"," に設定されています。
-
toString
このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。- オーバーライド:
toString
クラス内CommonTagSupport
- 戻り値:
- このクラスの文字列表現
- このメソッドは、nullを返しません
-