S2JDBC
以前に「1.5階層のAction-Service-Logicパターン」を紹介させて頂きました。今回は、このアーキテクチャにS2AbstractService を導入した場合のアーキテクチャについて検討してみました。主な変更点として、S2AbstractService を導入する場合は、アクションや…
エンティティの結合を検索時に指定することがほとんどなので findByIdやfindAllなんかは実運用では出番があまりないかもです。 AbstractService に次のようなメソッドを用意すれば、結合も汎用的に扱うことができます。 AbstractService.java public class A…
このエントリーではSeasar 2.4.26 から 導入された S2AbstractService について書かせて頂きます。S2AbstractService を活用することで、タイプセーフを保ちつつも、データアクセスロジック関連のソースコードを大幅に減らす効果が期待できます。 S2JDBC の…
ジェネリックの部分があまりスマートなやり方じゃない気がしていますが、ひとまず以下のやり方だとOKです。 まずはジェネリックな共通親サービスクラスです。 上記の引用エントリの元エントリ → 続・SAStruts + S2JDBCのアーキテクチャ SeasarのSVNリポジト…
S2JDBCを使ってエンティティ内にビジネスロジックを定義する リッチドメインモデルの手法は効果的なのだろうか? 現時点での私の考えはNo。 「S2JDBCのようなレイジーロードをサポートしていないO/Rマッパーで リッチドメインモデルを実現するのは実務的では…
S2Tigerって、testの規模がmain超えてるし (^^;OSSでtestがmainを超えるって、あんまりなくない? 以下は、id:cero-tさんのエントリーに対するid:higayasuoさんのコメント S2JDBCが、隅々までテストされているからでしょう。 起きそうな例外は、メッセージが…
> 現状のJdbcManagerでwhereにnullのプロパティを指定すると、 > NullPointerExceptionになるようなのですが、回避策はありますでしょうか。 SimpleWhere を使ってはいかがでしょうか. SimpleWhere なら,パラメータの値が null の場合は 条件に加えられま…
エンティティは @MappedSuperclass が指定されたクラスを継承できます。@MappedSuperclass には、エンティティと同じように永続プロパティを定義できます。 定義された永続プロパティは、サブクラスの永続プロパティとみなされます。 スーパークラスとサブク…
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…