[Seasar-user:8178] Re: [teeda]変更があったレコードのみをUPDATEするには

Tetsuya Midorikawa [E-MAIL ADDRESS DELETED]
2007年 6月 8日 (金) 09:55:19 JST


緑川です。

やったことは無いんですが、S2Daoの下記の機能を使ったら出来る
気がします。

http://s2dao.seasar.org/ja/s2dao-tiger.html#DefMethod

> v1.0.40からはメソッド名の末尾にModifiedOnlyが付いているUPDATE処理の場合、
> getModifiedPropertyNamesメソッドを実装するDTOを引数に渡すと、フィールド
> の内、更新された(setterが呼ばれて変更された)値のみを更新対象とします
> (バッチ処理の場合はこの機能は使えません)。


Pageでの一覧表示に使っているxxxItemsの要素が、直接上記の
getModifiedPropertyNamesを実装したEntityであれば行けそうですね。
木村さんのコードを見る限り、userItemsの要素はuserエンティティに
なってるので、このEntityクラスにgetModified...を実装すればOKかと。
(xxxItemsの要素が、EntityからDxoで変換後のDtoだったりする場合は、
全部自前で調べ直しになるので意味無いですが。。)




木村 究道 wrote:

>木村です。
>
>チェックボックスへチェックするのは手動になると思いますが
>操作をできるだけ減らしたいという要望で、変更されたことを
>自動的に判断できないかと考えています。
>
>あ、変更されたらJavaScriptでチェックを入れればいいんです
>か?
>ちょっとやってみます。
>
>                        以 上
>
>Shinpei Ohtani さんは書きました:
>  
>
>>大谷です。
>>
>>同時更新であれば、チェックボックスを各行につけて
>>チェックの入っている行だけを更新するようにしてはいかがでしょうか。
>>
>>よろしくお願いします。
>>
>>07/06/07 に 木村 究道<[E-MAIL ADDRESS DELETED]> さんは書きました:
>>    
>>
>>>木村と申します。
>>>
>>>Teeda 1.0.7 で開発しております。
>>>
>>>複数行を同時に一覧表示して、複数データを同時に更新しよ
>>>うとしています。
>>>
>>>全行を無条件にUPDATEすれば目的を果せるのですが、いずれ
>>>かの項目が変更された行のみをUPDATEする よい方法はない
>>>でしょうか?
>>>
>>>
>>>全行を無条件にUPDATEするのは以下のようにしています。
>>>
>>>画面(一覧表示)
>>>-----------------------------------------------------
>>><table>
>>>  <tr>
>>>    <th>コード</th>
>>>    <th>名前</th>
>>>    <th>カナ</th>
>>>  </tr>
>>><div id="userItems">
>>>  <tr>
>>>    <td><span id="Code">Code</td>
>>>    <td><input id="Name"/></td>
>>>    <td><input id="Kana"/></td>
>>>  </tr>
>>></div>
>>></table>
>>>
>>>
>>>UPDATEのロジック(全行をUPDATE)
>>>-----------------------------------------------------
>>>public String doUpdate() {
>>>    for(int i=0 ; i < this.userItems.length ;i++){
>>>        this.userDao.update(this.userItems[i]);
>>>    }
>>>    return null ;
>>>}
>>>
>>>
>>>よろしくお願い致します。
>>>
>>>以 上
>>>--
>>>-----------------------------------------------------
>>> 十八ソフトウェア株式会社
>>> システム開発部 ネットワーク・製品開発課 木村 究道
>>> 〒850-0861 長崎市江戸町6-5江戸町センタービル6F
>>> TEL:095-824-0018  FAX:095-827-8754
>>> E-mail: [E-MAIL ADDRESS DELETED]
>>>-----------------------------------------------------
>>>_______________________________________________
>>>Seasar-user mailing list
>>>[E-MAIL ADDRESS DELETED]
>>>https://ml.seasar.org/mailman/listinfo/seasar-user
>>>
>>>      
>>>
>>    
>>
>
>  
>



Seasar-user メーリングリストの案内