(外だしSQL)selectList()

"外だしSQLの使い方" を既に読んでいることが前提となります。

概要

外だしSQLでリスト検索 をします。

会話上では、(外だしSQLの)せれくとりすと と表現します。

実装方法

メソッドの呼び出し

outsideSql() の後、selectList() を呼び出します。

e.g. 外だしSQLの一件検索の実装手順 (Eclipseでコード補完) @Java
memberBhv.o // .o と打って enter
--
memberBhv.outsideSql().s // .s と打って enter
--
memberBhv.outsideSql().selectList(path, pmb, entityType);
// あらかじめ補完される引数の名前に合わせておくとスムーズに

メソッドはオーバーロードで "定型呼び出し形式" と "フリースタイル形式" と二つあります。

定型呼び出し形式

TypedParameterBean を引数に受け取ります。(null は許可されません)

CustomizeEntityマーク、および、ParameterBeanマークが定義されていることで TypedParameterBean の定型呼び出しが利用できます。

フリースタイル形式

パス、パラメータ(ParameterBean)、戻り値Entityの型の三つの要素を引数に受け取ります。 それぞれフリースタイル形式の基本仕様と全く同じです。

外だしSQLの使い方 - フリースタイル基本仕様

検索結果の受け取り

検索結果は、TypedParameterBean に関連付けられている Entity 型、もしくは、第三引数で指定した Entity 型の ListResultBean を戻り値として受け取ります。

e.g. 外だしSQLの一件検索の実装 @Java
String path = MemberBhv.PATH_selectSimpleMember;
SimpleMemberPmb pmb = new SimpleMemberPmb();
pmb.setMemberId(3);
Class<?> entityType = SimpleMember.class;
ListResultBean<SimpleMember> memberList = 
    memberBhv.outsideSql().selectList(path, pmb, entityType)

リストの型は、ListResultBean となります。java.util.List の実装クラスなので、そのままリストとして利用できます。(java.util.List型で受け取っても問題ありません)

検索結果が存在しない場合

検索結果が存在しない場合の戻り値は空のリストです。null は絶対に戻りません。

スカラ型で受け取る

SQL上の select 句のカラムを一つにして、検索結果を String や Integer などのスカラ値(スカラ型)のリストで受け取ることも可能です。TypedParameterBean ではCustomizeEntityマークに加えて scalar オプションを付与します。

e.g. スカラ型のオプションを指定 {MemberBhv_selectMemberName.sql} @SQL-File
-- #df:entity#
-- +scalar+
select MEMBER_NAME
  from MEMBER
e.g. 文字列のスカラ値のリストを検索 @Java
MemberNamePmb pmb = new MemberNamePmb();
ListResultBean<String> valueList = 
    memberBhv.outsideSql().selectList(pmb)
// select MEMBER_NAME from ... where MEMBER_STATUS_CODE = ...

スカラ値での検索においても、検索結果がない場合の扱いについては全く同じです。