S2JDBC

S2AbstractServiceを用いたAction-Service-Logicパターン

以前に「1.5階層のAction-Service-Logicパターン」を紹介させて頂きました。今回は、このアーキテクチャにS2AbstractService を導入した場合のアーキテクチャについて検討してみました。主な変更点として、S2AbstractService を導入する場合は、アクションや…

続・S2JDBC の弱点を補完するS2AbstractService

エンティティの結合を検索時に指定することがほとんどなので findByIdやfindAllなんかは実運用では出番があまりないかもです。 AbstractService に次のようなメソッドを用意すれば、結合も汎用的に扱うことができます。 AbstractService.java public class A…

S2JDBC の弱点を補完するS2AbstractService

このエントリーではSeasar 2.4.26 から 導入された S2AbstractService について書かせて頂きます。S2AbstractService を活用することで、タイプセーフを保ちつつも、データアクセスロジック関連のソースコードを大幅に減らす効果が期待できます。 S2JDBC の…

Genericsを使ったDaoの雛形

ジェネリックの部分があまりスマートなやり方じゃない気がしていますが、ひとまず以下のやり方だとOKです。 まずはジェネリックな共通親サービスクラスです。 上記の引用エントリの元エントリ → 続・SAStruts + S2JDBCのアーキテクチャ SeasarのSVNリポジト…

S2JDBCでリッチドメインモデルはYes?No?

S2JDBCを使ってエンティティ内にビジネスロジックを定義する リッチドメインモデルの手法は効果的なのだろうか? 現時点での私の考えはNo。 「S2JDBCのようなレイジーロードをサポートしていないO/Rマッパーで リッチドメインモデルを実現するのは実務的では…

S2JDBCのテストコードは本体のコードよりも多いらしい

S2Tigerって、testの規模がmain超えてるし (^^;OSSでtestがmainを超えるって、あんまりなくない? 以下は、id:cero-tさんのエントリーに対するid:higayasuoさんのコメント S2JDBCが、隅々までテストされているからでしょう。 起きそうな例外は、メッセージが…

JdbcManagerのwhereでnullと一致を条件にしたい

> 現状のJdbcManagerでwhereにnullのプロパティを指定すると、 > NullPointerExceptionになるようなのですが、回避策はありますでしょうか。 SimpleWhere を使ってはいかがでしょうか. SimpleWhere なら,パラメータの値が null の場合は 条件に加えられま…

S2JDBCでジェネレーション ギャップ パターン

エンティティは @MappedSuperclass が指定されたクラスを継承できます。@MappedSuperclass には、エンティティと同じように永続プロパティを定義できます。 定義された永続プロパティは、サブクラスの永続プロパティとみなされます。 スーパークラスとサブク…

SQLファイルにはページング処理を書かずにページング

examples/entity/Employee/selectAll.sql select ...List<EmployeeDto> results = jdbcManager.selectBySqlFile( EmployeeDto.class, "examples.entity.Employee.selectAll") .getResultList(); もちろん、ページングもできます。 List<EmployeeDto> results = jdbcManager.selectBySql</employeedto></employeedto>…

一対多関連を試してみたが、、、

S2JDBCの一対多関連を試そうと思って以下のようなメソッドを書いてみました。 public Dept findWithEmps(Integer id) { return jdbcManager.from(Dept.class) .join("emps") .where("id = ?", id) .getSingleResult(); } テストメソッドはこんな感じ。 publi…