markdown Doma 3でJava 11のRaw String Literalsに対応するとしたら
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown Doma 3でJava 11のRaw String Literalsに対応するとしたら相关的知识,希望对你有一定的参考价值。
# sql 要素に SQL の取得元を enum で指定する案
Raw String Literals に対応した場合、SQL取得は内部文字列、外部ファイル、自動生成の3モードとなる。
`sql` 要素に enum で `STRING`, `FILE`, `AUTO` の3モードいずれかを指定するようにする。デフォルトは、`STRING`
## Select の場合
### SQLはアノテーションから読む
```java
@Select(sql = STRING, value = `select * from emp`)
Emp select();
```
エイリアスとして
```java
@Select(`select * from emp`)
Emp select();
```
### SQLはファイルから読む
```java
@Select(sql = FILE)
Emp select();
```
### @Select で sql=AUTO を指定した場合
#### コンパイルエラー(SelectにSQL自動生成がないため)
```java
@Select(sql = AUTO)
Emp select();
```
#### またはエラーにせず、Select のSQL自動生成(ユニークキー指定の1件検索のみ)をサポートする
```java
@Select(sql = AUTO)
Emp select(Integer id);
```
メソッド引数名は、エンティティのフィールド名に存在するものである必要がある。
生成されるSQLは、
```sql
select /*%expand*/* from emp where id = /* id */1
```
これが実装されるとアノテーションの組み合わせによりコンパイルエラーにするパターンがなくなる。
## Insert の場合
### SQLはアノテーションから読む
```java
@Insert(sql = STRING, value = `insert into ...`)
int insert(Emp e);
```
エイリアスとして
```java
@Insert(`insert into ...`)
int insert(Emp e);
```
### SQLはファイルから読む
```java
@Insert(sql = FILE)
int insert(Emp e);
```
### SQLは自動で組み立てる
```java
@Insert(sql = AUTO)
int insert(Emp e);
```
以上是关于markdown Doma 3でJava 11のRaw String Literalsに対応するとしたら的主要内容,如果未能解决你的问题,请参考以下文章
markdown rbenvで指定したバージョンの捆绑を使う
markdown 画像のEXIF情报をコマンドラインで取得
markdown 卷曲でJWTの认证つき取リクエストを送る
markdown Ansibleのdocker_containerモジュールで没有指定命令
markdown エミュレータの位置情报をコマンドで设定する
markdown MAMPで“お使いのサーバーのPHPではWordPressに必要なMySQL拡张を利用できないようです。”