SQL実行時の値格納について
S2JDBCを調査している最中、先輩社員にツッコミを入れられたのでメモ
JOINをしたものを取得するSQLファイルを実行して
DTOクラスに実行結果を格納する処理を作ったのですが
SELECTでの取得項目とDTOクラスの変数が
どうマッピングされているのか理解できずに、ウヴァー
たとえば
SELECT hoge.id, hoge.category_name, hoge.disp_no, piyo.id AS itemId, piyo.item_name, piyo.price, piyo.url, piyo.description FROM 以下略
があったとします。
次に自前で作ったDTOクラスです。
public class HogePiyoDto { public Long id; public String categoryName; public String dispNo; public Long itemId; public String itemName; public int price; public String url; public String description; }
と記述しています。
何となく「命名規約があるっぽい?」と思ったので
.(ドット)の後ろを変数名(例:hoge.id ⇒ id)としたり
_(アンダーバー)を取ったものを変数名(例:hoge.category_name ⇒ categoryName)としたり
やっていたら値はちゃんと取れてました。
※型はリファレンスがあったので、その通り記述しました。
ちなみにS2Daoの場合
org.seasar.dao.annotation.tiger.Column
をインポートして
@Column("hoge.id")
と書いたので「マッピングされてるんだな」と
明示的にわかっているところです。
文にして伝えるのって本当に大変です。
別タスクがあるので、時間が空いたら調査することにします。