About

ドキュメント

プロジェクト文書

Built by Maven

その他メソッド

DAO (Data Access Object) インタフェースには様々なメソッドを持たせることができます.

エンティティの永続化

エンティティを永続化するメソッドです.

メソッド名 (正規表現)
persist
引数
エンティティ
戻り値
void
public interface EmployeeDao {
    void persist(Employee emp);
}

エンティティの削除

エンティティを削除するメソッドです.

メソッド名 (正規表現)
remove
引数
エンティティ
戻り値
void
public interface EmployeeDao {
    void remove(Employee emp);
}

管理されたエンティティか判定

エンティティが永続コンテキストに管理されているか判定するメソッドです.

メソッド名 (正規表現)
contains
引数
エンティティ
戻り値
boolean (管理されたエンティティならtrue)
public interface EmployeeDao {
    boolean contains(Employee emp);
}

エンティティの分離

管理されたエンティティを永続コンテキストから分離するメソッドです.

エンティティ単位で分離する方法はJPA使用で定められていないため, このメソッドはJPA実装固有の方法で実現されます. エンティティ単位の分離が実現できないJPA実装ではUnsupportedOperationExceptionがスローされます.

メソッド名 (正規表現)
detach
引数
エンティティ
戻り値
void
public interface EmployeeDao {
    void detach(Employee emp);
}

エンティティのマージ

分離されたエンティティを永続コンテキストにマージするメソッドです.

メソッド名 (正規表現)
merge
引数
分離されたエンティティ
戻り値
管理されたエンティティ
public interface EmployeeDao {
    Employee merge(Employee emp);
}

エンティティのリフレッシュ

管理されたエンティティのを最新の状態にするメソッドです.

メソッド名 (正規表現)
refresh
引数
エンティティ
戻り値
void
public interface EmployeeDao {
    void refresh(Employee emp);
}

エンティティのリードロック

管理されたエンティティのリードロックを獲得するメソッドです.

メソッド名 (正規表現)
readLock
引数
エンティティ
戻り値
void
public interface EmployeeDao {
    void readLock(Employee emp);
}

エンティティのライトロック

管理されたエンティティのライトロックを獲得するメソッドです.

メソッド名 (正規表現)
writeLock
引数
エンティティ
戻り値
void
public interface EmployeeDao {
    void writeLock(Employee emp);
}

JPQLによる更新・削除

Named Queryを使用して更新・削除を行うメソッドです.
使用するNamed Queryの名前はDaoのインタフェース名または問い合わせ対象のエンティティ名と,メソッド名をピリオドで 連結したものになります. メソッドに@QueryNameを付けることにより,使用するNamed Queryの名前を 明示的に指定することもできます. 検索順は次のとおりです.

  1. (もしあれば) @QueryNameアノテーションで指定された名前
  2. <DaoのFQN>.<Daoのメソッド名>
  3. <Daoの単純名>.<Daoのメソッド名>
  4. <エンティティ名>.<Daoのメソッド名>

JPQLは@NamedQueryアノテーションまたはマッピングファイルで定義します.

メソッド名 (正規表現)
(update|delete|remove).*
引数
JPQLに含まれるパラメータの並び
戻り値
voidまたはint (更新または削除された行数)
public interface EmployeeDao {
    int updateSalaryByName(String name, int salary);
}
実行されるNamed Queryの例
<named-query name="Employee.updateSalaryByName">
  <query>
    UPDATE
      Employee
    SET
      salary = :salary
    WHERE
      name = :name
  </query>
</named-query>

SQLによる挿入・更新・削除

S2Dao相当の2WAY-SQLファイルを使用して挿入・更新・削除を行うメソッドです.
使用するSQLファイルの名前は,Daoのインタフェース名 とメソッド名をアンダースコアで連結し, 拡張子 .sql を付加したものになります. SQLファイルはDaoインタフェースのパッケージと同じ階層のディレクトリに配置します.
SQLによる検索は,JPA (EntityManager) を使用せず,JDBC APIを直接使用します.

メソッド名 (正規表現)
(insert|update|delete|remove).*
引数
SQLに含まれるパラメータの並び
戻り値
voidまたはint (更新または削除された行数)
public interface EmployeeDao {
    List<EmployeeDto> deleteByDepartmentName(String departmentName);
}
実行されるSQLファイルの名前の例
EmployeeDao_deleteByDepartmentName.sql
実行されるSQLファイルの例
DELETE
  Employee
WHERE 
  department.name = /*departmentName*/'foo'