2010-01-01から1年間の記事一覧

seasar2覚書

今までブログに書いてましたが、削除してWikiにまとめます。 ブックマークしてくれていた方々すいません。http://www22.atwiki.jp/seasar2/

S2Unitでトランザクションをコミットする方法

S2Unitでテストをする際に、必ずロールバックされるものだと思ってたが、@TxBehaviorアノテーションを使うことでコミットできるんですね。。全く知りませんでした。 @TxBehavior(TxBehaviorType.COMMIT) public void test() { // }

InterceptorからActionFormを取得する方法

S2ActionMappingにもっているので下記方法で取得できる。 XxxForm xxxForm = S2ActionMappingUtil.getActionMapping().getActionForm();S2ActionMappingは、色々便利なメソッドがあるので、フレームワーク系の処理を書くときに便利。

S2UtilのBeanCopy

S2Util版BeanUtilの紹介 - wyukawa's diaryS2UtilのBeanCopyは、こんな感じで、executeが不要らしい。 BeanUtil.copyBeanToBean(src, dest);これはうれしい。execute忘れてもコンパイルエラーが出ないので、結構はまる人が多かった。 リリースはもうすぐかな…

SQLの組み立ては、ActionクラスかServiceクラスか

SimpleWhere等を使用して、SQLを組み立てる場合にActionで組み立てるのがいいかServiceで組み立てるのがいいのか悩んでいる。Seasar Conference 2008-SAStrutsの開発Tipsでは、Actionクラスでの組み立てができることになっているが、 最新のS2AbstractServic…

Validationエラー後に、画面表示処理を行う方法

@Executeのinputには、JSPだけではなく、Actionクラスのメソッドも指定できる。Validationエラー後に、セレクトボックスの値取得等の画面表示処理をしたい場合は、この方法でできる。

SQLファイルの置き場所

SQLファイルの置き場所は、entityの配下がいいのか?Service配下がいいのか?公式ドキュメントでは、entity配下を推奨しているが、「Seasar 2 徹底入門」では、Service配下で説明していたような気がする。決めの問題か。

メンバーが誰かより、誰をどこに配置するかが重要

今までプロジェクトとの体制について思うことといえば、 誰がメンバーにいるかだったが、 それよりも、誰をどこに配置するかが重要だと今回のプロジェクトで思った。みんながみんな声が大きいわけではない。 どこに配置されるかによっていいたいことがいえな…

用語は明確に定義する

用語集だけを見ても、書いていることは理解できるが、頭に入ってこない。 難しい概念は、具体例などを沿えた用語の定義資料があればよいと思う。

推奨のパッケージ構成は?

SAStrutsを使用した場合の、パッケージ構成はどれがいいのだろう? まず、HOT Deploy対象・非対象は分けておいたほうがよさそう。(公式ページには書いてないが)では、HOT Deploy対象配下はどのようにするべきか? 考えられるパターンとしては、以下のどちら…

findByIdで論理削除を除く

findByIdで論理削除されているレコードを除くには、AbstractServiceでやるのがいいみたい。 S2JDBC の弱点を補完するS2AbstractService - 出羽ブログ けどこの方法は、DBの主キーにIDが導入されている場合なら、 作成するメソッドが一つでいいが、IDが導入さ…

楽観的ロック発生時の例外処理

楽観的ロック発生時には自画面を表示し、"既に変更されてます"というエラーメッセージを出したい。 Serviceクラスがトランザクション境界の場合は、ActionでSOptimisticLockExceptionをキャッチして、 自画面へreturnすればいいのだが、Actionクラスがトラン…

トランザクション境界はActionかServiceか

今までずっと、Service層でやってきたけど、Actionの方が単純でよいのか? Action層にすると DBを使用しない処理でもトランザクションが発生してしまうので少し気持ち悪い。 1リクエストで複数のテーブルを更新する場合に、Service層に各テーブルを更新する…

DBアクセス時の共通処理の実装

DBアクセス時に共通化したい処理はいくつかあるが、まずは、"INSERT時に更新日時をセットする"という単純なものをS2JDBCで作ってみた。 (以下の記事を非常に参考にさせていただきました。) S2JDBC の弱点を補完するS2AbstractService - 出羽ブログ テーブル…