org.seasar.doma
注釈型 Select


@Target(value=METHOD)
@Retention(value=RUNTIME)
public @interface Select

検索処理を示します。

このアノテーションが注釈されるメソッドは、Daoインタフェースのメンバでなければいけません。 iterate 要素に false を指定することで、エンティティを1件ずつ処理することができます。

注釈されるメソッドは、次の制約を満たす必要があります。

iterate 要素が false の場合:

iterate 要素が true の場合:

 

SelectOptionsIterationCallback は特別な意味を持つパラメータです。

例:
 @Entity
 public class Employee {
     ...
 }
 
 @Dao(config = AppConfig.class)
 public interface EmployeeDao {
 
     @Select
     String selectNameById(Integer id);
     
     @Select
     List<Employee> selectNamesByAgeAndSalary(Integer age, BigDecimal salary);
 
     @Select
     Employee selectById(Integer id);
     
     @Select
     List<Employee> selectByExample(Employee example);
     
     @Select(iterate = true)
     <R> R selectSalary(Integer departmentId, IterationCallback<R, BigDecimal> callback);
 }
 
注釈されるメソッドは、次の例外をスローすることがあります。

作成者:
taedium
関連項目:
SelectOptions, IterationCallback

任意要素の概要
 int fetchSize
          フェッチサイズです。
 boolean iterate
          結果のインスタンスを1件ずつ処理するかどうかを示します。
 int maxRows
          最大行数の制限値です。
 int queryTimeout
          クエリタイムアウト(秒)です。
 

queryTimeout

public abstract int queryTimeout
クエリタイムアウト(秒)です。

指定しない場合、 Config.getQueryTimeout() が使用されます。

関連項目:
Statement.setQueryTimeout(int)
デフォルト:
-1

fetchSize

public abstract int fetchSize
フェッチサイズです。

指定しない場合、 Config.getFetchSize() が使用されます。

関連項目:
Statement.setFetchSize(int)
デフォルト:
-1

maxRows

public abstract int maxRows
最大行数の制限値です。

指定しない場合、 Config.getMaxRows() が使用されます。

関連項目:
Statement.setMaxRows(int)
デフォルト:
-1

iterate

public abstract boolean iterate
結果のインスタンスを1件ずつ処理するかどうかを示します。

true の場合、注釈されたメソッドのパラメータに IterationCallback 型のパラメータを含める必要があります。

デフォルト:
false


Copyright © 2009-2010 The Seasar Foundation. All Rights Reserved.