データベースの更新制御(update)
SQLのUPDATE句を組立て実行します。処理結果件数は処理中に参照が可能な他、
mappingタグを用いてDataBeanに返却できます。
- 使用可能箇所
- run
- Sub Tags
- link
, join
, where
, value
, formula
属性
- id
- 処理結果件数を管理するID
- entity
- テーブル名/ビュー名、またはビュー・クラス名
- transaction
- トランザクション設定ファイルのXMLファイル名(例:default)
- database
- トランザクション設定ファイル内の接続設定のコード
- schema
- 標準スキーマ
- exclusion
-
排他制御の対象カラム(カンマ区切りで複数指定可能)
※Beanの項目名とカラム名が異なる場合は「カラム名:項目名」
※link, joinタグにてテーブル結合している場合は「デーブル名.カラム名:項目名」
- when
-
多くのTagsでサポートしている「実行可否判定のための属性」です。
(こちらを参照)
(記述例)
「SYS_USER」のUSER_CODEに対しDataBeanのIDの値をキーとして対象レコードの
カラム「USER_PASS」をDataBeanのPASSの値を使用して更新
また、排他制御としてUPDATE_DATEがBeanの持つ値と異なる場合は更新せず
排他制御エラーを返却します。
<update id="UPD_COUNT" entity="SYS_USER" exclusion="UPDATE_DATE">
<value key="PASS" map="USER_PASS" />
<where>
<data key="ID" map="USER_CODE" type="eq" def="NULL" />
</where>
</update>
(注) DataBeanのUSER_CODEが意図せずNULLの場合でも条件なしの更新とならないようにdef="NULL"を設定
参照テーブルの直積(link)と外部結合(join)
updateタグを用いてデータベースを更新する際の条件のために参照するテーブルを等結合または外部結合します。
- 使用可能箇所
- update
- Sub Tags
- 記述不可
属性
- entity
- テーブル名/ビュー名
- schema
- 標準のスキーマ
- keys
-
結合条件となるカラム名(カンマ区切りにて複数指定可)
結合条件のカラム名が異なる場合は、比較演算子を用いて条件を記述します
※結合条件内にはコマンド・テキストが使用できます。
- base
- 結合先のテーブル名
- when
-
多くのTagsでサポートしている「実行可否判定のための属性」です。
(こちらを参照)
(記述例)
「SYS_USER_AUTHORITY」のAUTH_CODEに'ADMIN'をもつ「SYS_USER」の
USER_PASSをDataBeanのPASSの値に更新
また、排他制御としてUPDATE_DATEがBeanの持つ値と異なる場合は更新せず排他エラーを返却します。
SQL文 UPDATE SYS_USER SET PASS = (DataBeanのUSER_PASSを設定)
FROM SYS_USER_AUTHORITY
WHERE SYS_USER_AUTHORITY.CORPORATE_CODE = SYS_USER.CORPORATE_CODE
AND SYS_USER_AUTHORITY.USER_CODE = SYS_USER.USER_CODE
AND SYS_USER_AUTHORITY.AUTH_CODE = 'ADMIN'
AND SYS_USER.UPDATE_DATE = '2020-08-31 10:59:23.123'
<update id="UPD_COUNT" entity="SYS_USER" exclusion="SYS_USER.UPDATE_DATE:UPDATE_DATE">
<value key="USER_PASS" map="PASS" />
<link entity="SYS_USER_AUTHORITY" keys="CORPORATE_CODE, USER_CODE"
base="SYS_USER" />
<where>
<data val="ADMIN" map="AUTH_CODE" type="eq"
base="SYS_USER_AUTHORITY" />
</where>
</update>
更新条件(where)
updateタグを用いてデータベースを更新する際の条件が定義できます。
- 使用可能箇所
- update
- Sub Tags
- condition, data
where及びdataタグの使い方は、selectタグと同じです(こちらを参照)。
更新データの定義(value)
updateタグを用いてデータベースを更新する際に、カラムへ設定する値または数式を定義できます。
- 使用可能箇所
- update
- Sub Tags
- 記述不可
valueタグの使い方は、createタグと同じです(こちらを参照)。
updateタグを用いてデータベースを更新する際に、カラムへ設定する数式を定義できます。
※valueタグのformula属性では書きづらい長文の数式を用いる場合に使用。
※formula属性と同様に数式内ではコマンド・テキストが使用できます。
- 使用可能箇所
- update
- Sub Tags
- 記述不可
formulaタグの使い方は、createタグと同じです(こちらを参照)。