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 を指定する必要はありません。その場合は、
キーなしのため、マスターとスレーブのテーブルを単に合成するだけになります。
処理前後でのDBTableModelの件数は、以下の変数で取得することが可能です。
処理前のマスターテーブル : {@DB.MASTER_COUNT}
処理前のスレーブテーブル : {@DB.SLAVE_COUNT}
処理後 : {@DB.COUNT} ●形式:
・<og:tableMerge
action = "UNION_ALL|UNION|INTERSECT|MINUS|DIFFERENCE|UNION_CLM|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時にスレーブからマスタへ追加するカラム名
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|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形式で指定します
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" です。| 3.8.0.9 (2005/10/17) 新規追加 |
| 修飾子とタイプ | フィールドと説明 |
|---|---|
static java.lang.String |
ACT_ADD_CLM
action 引数に渡す事の出来る アクションコマンド 列合成"ADD_CLM"
|
static java.lang.String |
ACT_CDKH
action 引数に渡す事の出来る アクションコマンド 改廃コード "CDKH"
|
static java.lang.String |
ACT_DIFFERENCE
action 引数に渡す事の出来る アクションコマンド 差分集合"DIFFERENCE"
|
static java.lang.String |
ACT_GROUP
action 引数に渡す事の出来る アクションコマンド グループ "GROUP"
|
static java.lang.String |
ACT_INTERSECT
action 引数に渡す事の出来る アクションコマンド 積集合 "INTERSECT"
|
static java.lang.String |
ACT_MINUS
action 引数に渡す事の出来る アクションコマンド 差集合"MINUS"
|
static java.lang.String |
ACT_TABLE_REMOVE
action 引数に渡す事の出来る アクションコマンド DBTableModelの削除 "TABLE_REMOVE"
|
static java.lang.String |
ACT_UNION
action 引数に渡す事の出来る アクションコマンド 和集合 "UNION"
|
static java.lang.String |
ACT_UNION_ALL
action 引数に渡す事の出来る アクションコマンド 全体集合 "UNION_ALL"
|
static java.lang.String |
ACT_UNION_CLM
action 引数に渡す事の出来る アクションコマンド 列合成"UNION_CLM"
|
static java.lang.String |
ACT_UNION_SELROW
action 引数に渡す事の出来る アクションコマンド グループ "UNION_SELROW"
|
static java.lang.String |
CMD_NEW
command 引数に渡す事の出来る コマンド 新規 "NEW"
|
static java.lang.String |
CMD_RENEW
command 引数に渡す事の出来る コマンド 再検索 "RENEW"
|
BR, BUFFER_MIDDLE, CRbodyContentid, pageContextEVAL_BODY_BUFFERED, EVAL_BODY_TAGEVAL_BODY_AGAINEVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE| コンストラクタと説明 |
|---|
TableMergeTag()
デフォルトコンストラクター
|
| 修飾子とタイプ | メソッドと説明 |
|---|---|
int |
doEndTag()
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
|
protected void |
release2()
タグリブオブジェクトをリリースします。
|
void |
setAction(java.lang.String action)
【TAG】アクションを指定します[UNION_ALL/UNION/INTERSECT/MINUS/DIFFERENCE/UNION_CLM/ADD_CLM/GROUP/UNION_SELROW/CDKH/TABLE_REMOVE]。
|
void |
setCommand(java.lang.String cmd)
【TAG】コマンド (NEW,RENEW)をセットします(初期値:NEW)。
|
void |
setDiffKeys(java.lang.String diffKeys)
【TAG】マスタテーブルのDIFFERENCE時の差分カラム名を(CSV形式)指定します。
|
void |
setDisplay(java.lang.String flag)
【TAG】マージの結果を表示するかどうか[true:する/false:しない]を指定します(初期値:true)。
|
void |
setGroupAddClms(java.lang.String groupAddClms)
【TAG】集合処理するときに、相違データをCSV連結して残すカラム名をCSV形式で指定します。
|
void |
setMainTrans(java.lang.String flag)
【TAG】(通常は使いません)タグで処理される処理がメインとなるトランザクション処理かどうかを指定します(初期値:true)。
|
void |
setMasterKeys(java.lang.String masterKeys)
【TAG】マスタテーブルの集合処理を行う主キーを指定します。
|
void |
setMasterScope(java.lang.String masterScope)
【TAG】マスタテーブルのscopeを指定します(初期値:session)。
|
void |
setMasterTableId(java.lang.String masterTableId)
【TAG】マスタテーブルのtableIdを指定します
(初期値:HybsSystem#TBL_MDL_KEY[=h_tblmdl])。
|
void |
setModifyClms(java.lang.String modifyClms)
【TAG】スレーブからマスタへ値を更新するカラム名をCSV形式で指定します。
|
void |
setNoSideEffect(java.lang.String noSideEffect)
【TAG】テーブルモデルに対する副作用の有無[true:ない/false:ある]を指定します(初期値:false:ある)。
|
void |
setNullDelClms(java.lang.String nullDelClms)
【TAG】指定の値がすべてnull(空文字列)の場合、レコードを削除するカラムをCSV形式で指定します。
|
void |
setScope(java.lang.String scope)
【TAG】出力先のscopeを指定します(初期値:session)。
|
void |
setSeparator(java.lang.String sepa)
【TAG】groupAddClmsで文字列を連結する項目区切り文字をセットします(初期値:",")。
|
void |
setSlaveKeys(java.lang.String slaveKeys)
【TAG】スレーブテーブルの集合処理を行う主キーを指定します。
|
void |
setSlaveScope(java.lang.String slaveScope)
【TAG】スレーブテーブルのscopeを指定します(初期値:session)。
|
void |
setSlaveTableId(java.lang.String slaveTableId)
【TAG】スレーブテーブルのtableIdを指定します
(初期値:HybsSystem#TBL_MDL_KEY[=h_tblmdl])。
|
void |
setStopZero(java.lang.String flag)
【TAG】検索結果が0件のとき処理を停止するかどうか[true/false]を指定します(初期値:false[続行する])。
|
void |
setTableId(java.lang.String id)
【TAG】出力先のtableIdを指定します
(初期値:HybsSystem#TBL_MDL_KEY[=h_tblmdl])。
|
void |
setUnionClms(java.lang.String unionClms)
【TAG】スレーブからマスタへ追加するカラム名をCSV形式で指定します。
|
void |
setUseCheckOnly(java.lang.String flag)
【TAG】マスタテーブルの選択行のデータのみを対象に処理を行うかどうか[true:する/false:しない]を指定します(初期値:false)。
|
void |
setUseDiffData(java.lang.String flag)
【TAG】差分のスレーブデータを結果テーブルに追加するかどうかを指定します(初期値:true)。
|
void |
setUseSlaveLoop(java.lang.String flag)
【TAG】scope="request" のスレーブテーブルをループして使用するかどうか[true/false]を指定します(初期値:false[使用しない])。
|
java.lang.String |
toString()
このオブジェクトの文字列表現を返します。
|
add, add, addEventColumn, addEventColumn, check, commitTableObject, debugPrint, doAfterBody, doCatch, doFinally, doStartTag, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getCommonTagThrowable, getContextAttribute, getContextPath, getCookie, getCSVParameter, getCSVParameter, getDataCondition, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getHostName, getLabel, getLabelInterface, getLanguage, getLASTAttri, getLongLabel, getMsg, getMsglbl, getNVLAttri, getObject, getParameterNames, getParameterRows, getRequest, getRequestAttribute, getRequestCacheData, getRequestMethod, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getSumRequestValue, 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, useXssCheckdoInitBody, getBodyContent, getPreviousOut, release, setBodyContentfindAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValueclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetParent, setPageContext, setParentpublic static final java.lang.String ACT_UNION_ALL
public static final java.lang.String ACT_UNION
public static final java.lang.String ACT_INTERSECT
public static final java.lang.String ACT_MINUS
public static final java.lang.String ACT_DIFFERENCE
public static final java.lang.String ACT_UNION_CLM
public static final java.lang.String ACT_ADD_CLM
public static final java.lang.String ACT_GROUP
public static final java.lang.String ACT_UNION_SELROW
public static final java.lang.String ACT_CDKH
public static final java.lang.String ACT_TABLE_REMOVE
public static final java.lang.String CMD_NEW
public static final java.lang.String CMD_RENEW
public TableMergeTag()
| 6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor. |
public int doEndTag()
doEndTag インタフェース内 TagdoEndTag クラス内 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" の追加 |
protected void 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属性追加 |
public void setCommand(java.lang.String cmd)
cmd - コマンド (public static final 宣言されている文字列)コマンドは,HTMLから(get/post)指定されますので,CMD_xxx で設定される フィールド定数値のいづれかを、指定できます。 初期値は NEW です。
public void setAction(java.lang.String action)
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)、列追加(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 | 列合成 | マスタとキー一致するスレーブのカラム情報を追加 | ○ | ○ | ○ | |
| ADD_CLM | 列追加 | UNION_CLMとの違いは、カラムのみ追加することです。 | ○ | |||
| GROUP | グループ | マスタのユニーク部化 | ||||
| UNION_SELROW | 全体集合 | マスタとスレーブを合成(マスタ表のチェック行を起点に追加 | ○ | |||
| CDKH | 改廃CD | 改廃コードを設定 | ○ | ○ | ○ | |
| TABLE_REMOVE | TBL削除 | マスタテーブルオブジェクトを無条件で、削除します | ||||
public void setTableId(java.lang.String id)
id - テーブルID (sessionに登録する時のID)HybsSystem.TBL_MDL_KEY集合処理結果の DBTableModel をメモリにセットする場合のキー(tableId)を指定します。 (初期値:HybsSystem#TBL_MDL_KEY[=h_tblmdl])。
public void setScope(java.lang.String scope)
setScope クラス内 CommonTagSupportscope - 出力先のscopeCommonTagSupport.getScope()集合処理結果の DBTableModel をメモリにセットする場合のスコープを指定します。 ここでは、マスタやスレーブのスコープ設定が必要な為、superクラスのメソッドを オーバーライドしてこのオブジェクト内でキープしています。 初期値は、session です。
public void setMasterTableId(java.lang.String masterTableId)
masterTableId - マスタテーブルIDHybsSystem.TBL_MDL_KEY集合処理のマスタとなる DBTableModel をメモリから取り出す場合のキー(tableId)を指定します。 (初期値:HybsSystem#TBL_MDL_KEY[=h_tblmdl])。
public void setMasterScope(java.lang.String masterScope)
masterScope - マスタスコープ集合処理のマスタとなる DBTableModel をメモリから取り出す場合のスコープを指定します。 初期値は、session です。
public void setMasterKeys(java.lang.String masterKeys)
masterKeys - マスタテーブル主キー (CSV形式)集合処理を行う場合の、カラム名を、CSV形式(CSV形式)で指定します。 このキーの組み合わせを元に、集合処理の突合せを行います。 なお、アクションがグループ(GROUP)以外の処理では、マスタとスレーブのカラム数と 並び順は、同じでなければなりません。カラム名は、各々別々でもかまいません。 アクションが全体集合(UNION_ALL)以外の場合は、必須属性になります。
public void setSlaveKeys(java.lang.String slaveKeys)
slaveKeys - スレーブ主キー (CSV形式)集合処理を行う場合の、カラム名を、CSV形式(CSV形式)で指定します。 このキーの組み合わせを元に、集合処理の突合せを行います。 なお、アクションがグループ(GROUP)以外の処理では、マスタとスレーブのカラム数と 並び順は、同じでなければなりません。カラム名は、各々別々でもかまいません。 null の場合は、masterKeys と同じとします。
public void setDiffKeys(java.lang.String diffKeys)
diffKeys - 差分カラム名 (CSV形式)setMasterKeys( String )アクションが差分処理(DIFFERENCE)の場合に、差分チェックを行うカラム名を、 CSV形式(CSV形式)で指定します。 差分処理とは、masterKeys で指定されたキーでは、マスタ、スレーブともに存在し かつ、このキー(diffKeys)で指定されたキーの値が異なるマスタレコードを 抜き出します。 つまり、主キーは存在し、属性が異なる情報のピックアップになりますので、 データ更新(UPDATE)対象を見つける場合に使用できます。 アクションが差分処理(DIFFERENCE)の場合は、必須属性になります。
public void setSlaveTableId(java.lang.String slaveTableId)
slaveTableId - スレーブテーブルIDHybsSystem.TBL_MDL_KEY集合処理のスレーブとなる DBTableModel をメモリから取り出す場合のキー(tableId)を指定します。 なお、アクションがグループ(GROUP)の場合は、スレーブテーブルは使用されません。 (初期値:HybsSystem#TBL_MDL_KEY[=h_tblmdl])。
public void setSlaveScope(java.lang.String slaveScope)
slaveScope - スレーブスコープ集合処理のスレーブとなる DBTableModel をメモリから取り出す場合のスコープを指定します。 なお、アクションがグループ(GROUP)の場合は、スレーブテーブルは使用されません。 初期値は、session です。
public void setUnionClms(java.lang.String unionClms)
unionClms - 列合成カラム名 (CSV形式)アクションが列合成(UNION_CLM)または列追加(ADD_CLM)の場合に使用されます。 列合成(UNION_CLM)は、マスタとスレーブの主キーに対して、ここで指定のスレーブの カラム列名を、マスタの列に追加します。主キーがマッチしない行に関しては、 カラムの初期値が適用されたデータを作成します。 列追加(ADD_CLM)は、マスタテーブルに指定のカラムを追加するだけです、スレーブテーブルは 参照しません。よって、主キーも指定不要です。
public void setNullDelClms(java.lang.String nullDelClms)
nullDelClms - null(空文字列)の場合、レコードを削除するカラムをCSV形式で指定アクションが(GROUP)で、指定のカラム列の値が、すべてnull(空文字列)の場合は、 そのレコード自身を削除します。
| 6.7.3.0 (2017/01/27) nullDelClms属性追加 |
public void setModifyClms(java.lang.String modifyClms)
modifyClms - 値更新カラム名 (CSV形式)アクションが差分処理(DIFFERENCE)、改廃CD(CDKH)の場合に、結果にマスタテーブルが抜き出されますが、 更新する場合に、スレーブ特有のユニークキー(例:UNIQ)を用いて更新する場合、 指定のカラム値は、スレーブの値にセットしておきたい場合があります。 ここでは、指定のカラムについて、値だけスレーブからマスタへセットします。 なお、値の更新については、マスタとスレーブが同一キーという制約があります。
public void setGroupAddClms(java.lang.String groupAddClms)
groupAddClms - 相違データCSV連結 (CSV形式)masterKeysで集合処理するときに、通常、最初に見つかった行データのみ残りますが、 ここに指定したカラムについては、発生都度、自分自身の情報に、CSV形式で連結して いきます。 この操作により、本来削除された情報が、1行のCSV形式で取得できる効果が得られます。 これは、value タグの action="APPEND" を、DBTableModel に対して実施するような感じです。
| 5.1.4.0 (2010/03/01) 新規追加 |
public void setNoSideEffect(java.lang.String noSideEffect)
noSideEffect - 処理結果副作用 [true:ない/false:ある]すべての処理で、DBTableModel に対して、ユニーク化やグループ化などの集合処理を 行う過程で、マスタテーブルに対して直接処理を行うと、副作用が発生します。 同様に、スレーブテーブルにおいても、一旦キー列でグループ化されるため、副作用が 発生します。これは、無駄なメモリ領域の確保と、テーブル(マスタ、スレーブとも)の コピー処理時間の節約になります。初期値の設定も副作用がある状態になっています。 ところが、都合によっては、色々な action を連続して行いたい場合など、毎回、 データベースを検索するよりもメモリ上でコピーしたほうが都合がよいケースでは、 副作用が出ないように、noSideEffect="true" に設定します。 ただし、マスタ、スレーブともテーブルをコピーを行い、結果のテーブルも派生する為、 通常、2つの領域(マスタと結果は同じテーブルに書かれる)で良い所を、5つの領域が 作成されます。 初期値は、副作用がある(noSideEffect="false")です。
public void setUseDiffData(java.lang.String flag)
flag - 差分追加 [true:追加する/false:追加しない]アクションが差分処理(DIFFERENCE)の場合に、結果にマスタテーブルが抜き出されますが、 差分対象のスレーブデータと比較したい場合があります。 このフラグを true にセットすると、書込み禁止属性が付いた状態で、スレーブデータが 結果テーブルに追加されます。 なお、この処理では、通常と異なり、マスタテーブルにはグループ化の副作用は発生しますが、 結果テーブルは新規に作成され、先頭行に必ず WRITABLE カラムが付加されます。 初期値は、true:追加する です。
public void setUseCheckOnly(java.lang.String flag)
flag - 選択行のみ対象 [true:選択行のみ/false:全件]処理対象のマスタテーブルについて、選択行が指定された場合に、選択行のみを処理対象に するか、全件を対象にするかを指定します。 積集合や差分集合など通常は、全件を対象にすることになりますが、列合成や列追加など、 マスタテーブルに対してのみ作用を及ぼす処理では、選択行のみを対象に処理を行う事が 考えられます。その場合、初期グループ化と同じで、対象とする行が選択行のみになります。 初期値は、false:全件対象 です。
public void setDisplay(java.lang.String flag)
flag - 結果表示 [true:する/false:しない]true で、マージ結果を表示します。 false では、何も表示しません(初期値:true) マスタテーブルの件数は、通常、キーでグループ化されるため、入力件数と異なります。 同様に、スレーブ件数も異なります。結果の件数は、処理結果が現実的かどうかの 判断に使用されます。 初期値は、true:表示する です。
public void setStopZero(java.lang.String flag)
flag - 0件時停止 [true:処理を中止する/false:続行する]初期値は、false(続行する)です。
| 5.7.6.2 (2014/05/16) 新規追加 |
public void setUseSlaveLoop(java.lang.String flag)
flag - スレーブテーブルをループして使用するかどうか [true:使用する/false:使用しない]初期値は、false(使用しない)です。
| 6.7.3.0 (2017/01/27) useSlaveLoop属性追加 |
public void setMainTrans(java.lang.String flag)
flag - メイントランザクションかどうか [true:メイン/false:その他]この値は、ファイルダウンロード処理に影響します。この値がtrueに指定された時にcommitされたDBTableModelが ファイルダウンロードの対象の表になります。 このパラメーターは、通常、各タグにより実装され、ユーザーが指定する必要はありません。 但し、1つのJSP内でDBTableModelが複数生成される場合に、前に処理したDBTableModelについてファイルダウンロードをさせたい 場合は、後ろでDBTableModelを生成するタグで、明示的にこの値をfalseに指定することで、ファイルダウンロード処理の対象から 除外することができます。
| 5.1.6.0 (2010/05/01) 新規作成 |
public void setSeparator(java.lang.String sepa)
sepa - 項目区切り文字 (初期値:",")groupAddClmsで文字列を連結する項目区切り文字をセットします(初期値:",")。 初期値は、"," に設定されています。
| 5.3.1.0 (2011/01/01) |
public java.lang.String toString()
toString クラス内 CommonTagSupportWebアプリケーションフレームワーク openGionCopyright (c) 2009 The openGion Project.