>>-@Select--(--sql--=--"--SQL-statement--"--)-------------------> >--+--------------------------------------------------------------------------------------+--> '-@Handler--(--+-parameterHandler--=--class-name----------------------------------+--)-' +-resultHandler--=--class-name-------------------------------------+ +-resultHandler--=--class-name--,--parameterHandler--=--class-name-+ +-rowHandler--=--class-name----------------------------------------+ '-rowHandler--=--class-name--,--parameterHandler--=--class-name----' >--modifiers--return-type--method-name--(--+------------------------------------+--);->< | .-,------------------------------. | | V | | '---parameter-type--parameter-name-+-'
構文図で使用されている規則については、構文図の読み方を参照してください。
return-type: >>-+-Iterator<T>--------+-------------------------------------->< +-List<T>------------+ +-Map<String,Object>-+ +-T------------------+ '-T[]----------------'
2 番目の表には、メモリー内のコレクションを照会するアノテーション付きメソッドで可能な戻りの型が示されています。
省略形 | 意味 |
---|---|
I | Iterator |
L | List |
M | Map |
O | Object |
S | String |
T | 汎用クラス。これは、プリミティブ Java タイプのラッパー・クラス、または Bean になる可能性があります。 |
I<M<S,O>> | I<T> | L<M<S,O>> | L<T> | M<S,O> | M<S,O>[] | <T> | |
---|---|---|---|---|---|---|---|
@Select | X | X | X | X | X | X | X |
アノテーション付きメソッドを使用する場合は、@Select がプリミティブ Java タイプ、つまり Array、List、または Iterator を戻すことを指定しないでください。
SQL NULL 値に関する情報は、SQL から照会された情報がプリミティブ Java タイプに格納されると失われます。 さらに、Java は、<primitive Java type>.class の汎用 <T> クラスを指定する汎用メソッドが、そのプリミティブ Java タイプに適したラッパー・クラスのインスタンスを戻すように要求します。
int tCount = myGenericMethod( int.class );ここで、以下は myGenericMethod の定義です。
<T> T myGenericMethod( Class<T> cl );
Integer tCount = myQuery.myGenericMethod( Integer.class );
Iterator オブジェクトが、行に対応する各エレメントとともに戻されることを指定します。 パラメーター化されたタイプ T を指定する必要があります。
pureQuery における反復子のタイプは ResultIterator です。使用し終えたら、ResultIterator.close() メソッドでそれらの反復子を閉じる必要があります。
スカラーまたは Bean が戻されることを指定します。スカラーは、Double などのラッパー、または String、Date、Timestamp にすることができます。
複数の行が該当する場合には、照会の結果として最初の行の値が戻されます。
こうしたパラメーターは、以下の規則に従って、SQL ステートメントで指定されるパラメーター・マーカーと突き合わされます。こうしたパラメーターは、スカラー型、Bean クラス、または Map オブジェクトが可能です。SQL のパラメーター参照に :name 表記が使用されている場合には、最初の parameter-type は Bean または Map でなければなりません。 Bean または Map オブジェクトのプロパティー名が、SQL ストリング内での :name の出現箇所との突き合わせに使用されます。
pureQuery がメモリー内のコレクションに対する照会として、対応する SELECT ステートメントを識別できるようにするには、Iterator、Array、または反復可能な List であるパラメーターが少なくとも 1 つは必要とされます。メモリー内 Java コレクションの照会の FROM 節にあるパラメーター・マーカーで説明されている構文を使用して、SELECT ステートメントの FROM 節でこのパラメーターを参照します。
SQL で ? 表記がパラメーター・マーカーに使用されている場合には、スカラー値だけを指定できます。
?n 表記を使用する場合、対応するパラメーターはスカラー型でなければなりません (ただし、FROM 節にある場合は除きます。その場合には、コレクションまたは Array オブジェクトにする必要があります)。
?n.name 表記を使用する場合には、対応するパラメーターは Bean クラスか Map オブジェクトでなければなりません。?n および ?n.name 表記を 1 つの照会で混用できますが、独立した ? パラメーター・マーカーと混用することはできません。