Skip to content

Instantly share code, notes, and snippets.

@nakamura-to
Last active January 13, 2019 21:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nakamura-to/c9e3c9299d006ebdb8e74ceed6a6baf9 to your computer and use it in GitHub Desktop.
Save nakamura-to/c9e3c9299d006ebdb8e74ceed6a6baf9 to your computer and use it in GitHub Desktop.
Doma 2.22.0にて、SQLをアノテーションに記述するための機能を実験的に追加する

追加するアノテーションは @Sql の1つのみ

  • 前提として@Sql 導入前までのバージョンとの互換性は維持する
  • @Sql のFQNは org.seasar.doma.experimental.Sql

Selectの場合

(これまで通り)SQLをファイルから読む

@Select
Emp select();

SQLをアノテーションから読む

@Sql("select * from emp")
@Select
Emp select();

Insertの場合

(これまで通り)SQLを自動で組み立てる

@Insert
int insert(Emp e);

SQLをアノテーションから読む

@Sql("insert into ...")
@Insert
int insert(Emp e);

(これまで通り)SQLをファイルから読む

@Insert(sqlFile = true)
int insert(Emp e);

エラー(アノテーションとファイルのどちらのSQLを使えばいいのかわからないので)

@Sql("insert into ...")
@Insert(sqlFile = true)
int insert(Emp e);

その他エラー

@Sql をサポートしていないアノテーションと一緒に注釈するケース

@Sql("insert into ...")
@Procedure
void execute(String value);

@Sql をデフォルトメソッドに注釈するケース

@Sql("insert into ...")
default int doSomething(String value) {
  ...
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment