Skip to content

Commit

Permalink
Add a description about the setIfNotNull function
Browse files Browse the repository at this point in the history
  • Loading branch information
nakamura-to committed Nov 28, 2021
1 parent d003671 commit 82c7cee
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 3 deletions.
14 changes: 13 additions & 1 deletion content/ja/docs/Reference/Query/QueryDsl/insert.md
Expand Up @@ -137,7 +137,9 @@ insert into DEPARTMENT as t0_ (DEPARTMENT_ID, DEPARTMENT_NO, DEPARTMENT_NAME, LO

## values

プロパティごとの値を設定して1件を追加するには`values`を呼び出します。
プロパティごとの値を設定して1件を追加するには`values`関数にラムダ式を渡します。

ラムダ式の中では`set`関数を使って値を設定できます。

```kotlin
val query: Query<Pair<Int, Int?>> = QueryDsl.insert(a).values {
Expand All @@ -150,6 +152,16 @@ insert into ADDRESS (ADDRESS_ID, STREET, VERSION) values (?, ?, ?)
*/
```

`setIfNotNull`を使って値が`null`でない場合にのみ値を設定することもできます。

```kotlin
val query: Query<Pair<Int, Int?>> = QueryDsl.insert(a).values {
a.addressId set 19
a.street setIfNotNull street
a.version set 0
}
```

クエリを実行した場合の戻り値は追加された件数と生成されたIDの`Pair`です。
IDはマッピング定義に`@KomapperAutoIncrement``@KomapperSequence`が注釈されている場合にのみ返されます。

Expand Down
19 changes: 17 additions & 2 deletions content/ja/docs/Reference/Query/QueryDsl/update.md
Expand Up @@ -61,7 +61,9 @@ update ADDRESS set STREET = ?, VERSION = ? + 1 where ADDRESS_ID = ? and VERSION

## set {#set}

任意のプロパティに更新データをセットするには`set`を呼び出します。
任意のプロパティに更新データをセットするには`set`関数にラムダ式を渡します。

ラムダ式の中では`set`関数を使って値を設定できます。

```kotlin
val query: Query<Int> = QueryDsl.update(a).set {
Expand All @@ -74,14 +76,27 @@ update ADDRESS as t0_ set STREET = ? where t0_.ADDRESS_ID = ?
*/
```

このクエリを実行した場合の戻り値は更新された件数です。
`setIfNotNull`を使って値が`null`でない場合にのみ値を設定することもできます。

```kotlin
val query: Query<Int> = QueryDsl.update(e).set {
e.managerId setIfNotNull managerId
e.employeeName set "test"
}.where {
e.employeeId eq 1
}
```

これらのクエリを実行した場合の戻り値は更新された件数です。

以下のマッピング定義を持つプロパティについて明示的に`set`を呼び出さない場合、発行されるSQLに自動で値が設定されます。
明示的に`set`した場合は明示した値が優先されます。

- `@KomapperVersion`
- `@KomapperUpdatedAt`



## where {#update-where}

任意の条件にマッチする行を更新するには`where`を呼び出します。
Expand Down

0 comments on commit 82c7cee

Please sign in to comment.