SQLはすべてバインド変数(?)を使った準備された文に変換されて実行されますが、 このドキュメントでは、発行されたSQLがどのようなものかわかりやすくするためにバインド変数を実際の値に置き換えたログ用のSQLを示します。
src/test/java/tutorial/InsertTest.javaのtestInsertメソッドを参照してください。 SQLの自動生成による挿入です。
使用するDaoのメソッド定義は次のとおりです。
Daoのメソッドは次のように呼び出します。
SQLのログは次のように出力されます(改行しています)。
識別子のidプロパティは自動生成されるので設定する必要はありません。
楽観的排他制御用バージョンのversionプロパティは自動生成されるので設定する必要はありません。
insertTimestampプロパティはEmployeeListenerで自動設定されます。 src/test/java/tutorial/EmployeeListener.javaを参照してください。
src/test/java/tutorial/InsertTest.javaのtestInsertWithSqlFileメソッドを参照してください。 SQLファイルによる挿入です。
使用するDaoのメソッド定義は次のとおりです。 @InsertのsqlFile要素にtrueを指定します。
Daoのメソッドに対応するSQLファイルのパスはMETA-INF/tutorial/dao/EmployeeDao/insertWithSqlFile.sqlです。 SQLファイルには次のように記述されています。
Daoのメソッドは次のように呼び出します。
SQLのログは次のように出力されます。
SQLファイルによる挿入では、識別子の自動生成やバージョンの自動生成は行われません。 また、エンティティリスナーも呼び出されません。