POJO と AJO
で、最近気になっている議論がこれ。
とりあえず、いま持っている知識と経験で考えたところを整理しておくと。
- 「仕様」「実装」「設定」の3つに整理して考えてみたらどうだろうか。
- それをコードで書くか、Annotation で書くか、設定ファイルに書くかはどれでもOK。一番楽なスタイルで書けば良い。
- 「仕様」に「実装」や「設定」の情報を入れるのはNG。逆に「実装」や「設定」から「仕様」生成するようなこともNG。*1
- そういう意味で、単に POJO と AJO (Annotated Java Object) という分け方はあまり意味がないかも。
...というのが一応のスタンスだけど、どこまでが「仕様」で、どこからが「実装」「設定」なのかは実は難しいかもしれませんね。
エンティティクラスにテーブルの情報を入れるのはイヤだと言っておきながら、テーブル定義書からエンティティクラス作ったりしてるし。(^^;)