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")

と書いたので「マッピングされてるんだな」と
明示的にわかっているところです。


文にして伝えるのって本当に大変です。
別タスクがあるので、時間が空いたら調査することにします。