cypher256's blog

Pleiades とか作った

S2JDBC

S2AbstractService ってfdじゃslkjfs。

タイトルが適当ですみません。 public class EmpService extends AbstractService<Emp> { public Emp selectById(Object... id){ return select() .id(id).getSingleResult(); } public Emp selectByIdWithDept(Object... id){ return select().join("dept") .id(</emp>…

Seasar3 は Spring ベースに

誤解があるタイトルですみません。昔 Seasar3 という言われたものが Slim、正式に Slim3 となる方向だそうです。で、その Slim は Spring の上に構築すると。 HOT deploy可能なSpringの上に、SAStrutsとS2JDBCを移植して、HOT deploy可能なフルスタックのフ…

toString

共通の親エンティティに toString を実装し public フィールド値を出力されるようにすれば色々便利です。これは特に S2JDBC のエンティティに限ったことではありません。 @MappedSuperclass public class AbstractEntity implements Serializable { public S…

JavaBeans プロパティ命名ルール

JavaBeans 仕様では先頭の連続する 2 文字が大文字だと先頭が小文字になりません。Struts でハマった方も多いのではないでしょうか? S2JDBC でも厳密にこれに沿っているため、DB のテーブル名が T_HOGE とかだと、S2JDBC デフォルトだとテーブルの外部キー…

拡張性

Struts もそうですが、SAStruts と S2JDBC もかなり高い拡張性を持っています。汎用的に出来ている分、シンプルとはいえ、プロジェクトや開発メンバスキルにより切り捨てたほうが良い機能もあります。必要な機能のみを周知し、足りない機能は追加する。とい…

エンティティの自動生成

今回は Object Browser ER の備考欄だったかにマッピングアノテーションを書いておき、定義書を生成して、そこから Excel マクロでエンティティを自動生成しました。DB への CREATE も Object Browser ER でフォワードエンジニアリングで楽々でした。自動生…

SQL 発行

次のようなインターフェースを持つ Sql クラスを作成し、複雑な SQL に対応しました。このクラスは SQL 文字列とパラメータのリストを持つ単純なクラスです。メソッドは append しかありません。 public class Sql public Sql(boolean isAndOr) publilc Sql …

画面部品

Cubby TIPS にあるような画面部品を実現する場合は下記のような感じ。Action に依存しないため、かなり便利です。 common.jsp や header.jsp で dao を getComponent しておく。 JSTL で使用可能にするために検索結果を Beans で BeanMap にコピーする。 例…

SQL 自動生成の結合+ページング「列の定義が未確定」でハマり中

Oracle 10g。S2JDBC の SQL 自動生成で leftOuterJoin で OneToMany の結合をして、ページング指定すると「ORA-00918: 列の定義が未確定です。」が発生。使い方がまずいんでしょうか? 調査中です。 List<TCmp> oyaList = jdbcManager .from(TOya.class) .leftOute</tcmp>…

SAStruts + S2JDBC でサクサクか炎上か

可燃プロジェクトに飛び込むことになりました。下記のような炎上する要素満載。 関係者各社に告知済みのためカットオーバーは伸ばせない 外部仕様を策定した会社は行方不明 外部仕様はあるが、OS も AP サーバも環境もアーキテクチャーも未定 外部仕様を分か…