[Seasar-user:20205] [s2jdbc]select時にResultSetからEntityに変換された後で、追加の処理を行いたい

halt [E-MAIL ADDRESS DELETED]
2010年 9月 29日 (水) 13:12:02 JST


いつもお世話になります。
大塚です。

S2jdbcで教えていただきたいことがあります。

やりたい事
テーブルにJSON形式の拡張項目を格納しており、
これをテーブル<->EntityのIO時になるべく横断的にエンコード・デコードしたい。

Seasarのバージョン
2.4.42

試した方法
Entityに以下のフィールドを用意。
String jsonText ※永続化対象
JsonDto JsonDto ※永続化対象外
Entityに以下のメソッドを実装。
decode(String->JsonDto) ※synchronizeしておき、未decode時のみ作動するように実装。
encode(JsonDto->String)

更に、EntityにJsonDto.fieldへ中継するgetter/setterを用意し、ここでdecodeする。

Serviceのupdateとinsertでdecodeしてからencodeする。

気になったこと
・getter/setterでのdecode漏れが起こりやすい。
・同期化のコストが若干気になる。
・この方法がベストなのか自信がない。

そこで件名にも書きましたように、
select時にResultSetからEntityに変換された後でdecodeする方法がないか調べてみたところ、
org.seasar.extension.jdbc.impl.AbstractBeanResultSetHandlerをextendsしたHandlerを作り、
そこでEntityのdecodeを呼び出すようにする方法を考えつきました。

そこでご教示いただきたいのが、
・まず、上記2案(getter/setter案、Handler案)以外にベターな方法がないか。
・Abstract〜HandlerをextendsしたHandlerが使われるようにする方法。
の2点です。

お忙しいこととは存じますが、よろしくお願い致します。
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/seasar-user/attachments/20100929/47790c40/attachment.html>


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