EzJDBCで取得する列を限定する!
以下のエントリを見つけたので、EzJDBCの場合を書いてみる。。。
S2JDBCの流れるインターフェースで検索すると、すべてのカラムが取得されます。嫌ならsqlファイルに書けばいいじゃん。って話ですが、せっかくのタイプセーフな検索が意味なし!
悩んだ末、lazyを使えばいいのかとたどりつきました。
中略...
EzJDBCで取得する列を限定方法は、以下の2通りになる…
1.結果を格納するEntityに存在するプロパティ(キャメル記法)と同名列のみ取得する列にする。
取得したい項目のみプロパティーを設定
public class Customer2 { public long id; public String name; }上記Entityに照会結果を格納するソース
// テーブル情報インスタンスを生成 CUSTOMER _CUS = new CUSTOMER(); // CUSTOMERテーブルを照会 List<Customer2> result = new EzJDBC().from(_CUS).find(Customer2.class);これでCUSTOMERテーブルのIDとNAME列のみ取得する事になる。。。
2.EzJDBCのincludesメソッドで、取得する列を指定する。
CUSTOMERテーブルの全列のプロパティをもつEntity
public class Customer { public long id; public String name; public String telNo; public String mailAddress; ... }上記Entityに照会結果を格納するソース
// テーブル情報インスタンスを生成 CUSTOMER _CUS = new CUSTOMER(); // CUSTOMERテーブルを照会 List<Customer> result = new EzJDBC().from(_CUS) .includes(_CUS.NAME,_CUS.TEL_NO).find(Customer.class);これでCUSTOMERテーブルのNAMEとTEL_NO列のみ取得する事になる。。。
追記
ちなみにEzJDBCのexcludesメソッドを利用すれば、取得しない項目を設定することも出来ます^^