About

ドキュメント

Javadocs

プロジェクト文書

Built by Maven

概要

SQLはすべてバインド変数(?)を使った準備された文に変換されて実行されますが、 このドキュメントでは、発行されたSQLがどのようなものかわかりやすくするためにバインド変数を実際の値に置き換えたログ用のSQLを示します。

SQLの自動生成による削除

src/test/java/tutorial/DeleteTest.javaのtestDeleteメソッドを参照してください。 SQLの自動生成による削除です。

使用するDaoのメソッド定義は次のとおりです。

@Delete
int delete(Employee employee);

Daoのメソッドは次のように呼び出します。

Employee employee = dao.selectById(1);

dao.delete(employee);

SQLのログは次のように出力されます(改行しています)。

delete 
from 
  Employee 
where 
  id = 1 
  and 
  VERSION = 1

@Versionが注釈されたversionプロパティに対応するカラムは検索条件に含まれます。

SQLファイルによる削除

src/test/java/tutorial/DeleteTest.javaのtestDeleteWithSqlFileメソッドを参照してください。 SQLファイルによる削除です。

使用するDaoのメソッド定義は次のとおりです。 @DeleteのsqlFile要素にtrueを指定します。

@Delete(sqlFile = true)
int deleteWithSqlFile(Employee employee);

Daoのメソッドに対応するSQLファイルのパスはMETA-INF/tutorial/dao/EmployeeDao/deleteWithSqlFile.sqlです。 SQLファイルには次のように記述されています。

delete
from 
  Employee
where
  ID = /* employee.id */0

Daoのメソッドは次のように呼び出します。

Employee employee = dao.selectById(1);

dao.delete(employee);

SQLのログは次のように出力されます。

delete
from 
  Employee
where
  ID = 1

SQLファイルによる削除では、エンティティリスナーは呼び出されません。