cypher256's blog

Pleiades とか作った

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(id).getSingleResult();
	}
}
S2AsbtractServiceの使い方について - じゅんいち☆かとうの技術日誌

本題とは直接関係ないですが、これって引数が可変長引数になってるのは、いくらなんでも間違いですよね。引数なしでもコンパイルエラーにならないのは怖い。

それを踏まえて、Seasar2の次のバージョンでは、select()、selectBySql()、selectBySqlFile()はprotectedにする予定です。

S2AbstractServiceは便利なJdbcManagerじゃないよ - yvsu pron. yas

いい感じですね。サービスを作った以上、自然な流れに見えます。これで開発者によって、サービスに書いたり、アクションに書いたりといったバラつきが無くなりそうです。些細なことですが、select().id() は多用するので、protected S2AbstractService#id があったほうが良い気がします。



最近、Railsガリガリやってますが、Javaコンパイル時検証のありがたみを今更ながら感じています。でも、RailsCakePHP のダイナミックファインダ (実行時に動的生成される find_by_カラム名 とか find_by_カラム名_and_カラム名 とか find_all_by_カラム名 とか) も強力すぎて離れられません。ブラックボックスでイラつくこともありますけど。