Quill onconflictupdate несколько значений - PullRequest
0 голосов
/ 09 октября 2018

Можно ли как-то в quill обновить несколько значений в конфликте?Например, вот так:

val a = quote {
  query[Product]
    .insert(_.id -> 1, _.sku -> 10)
    .onConflictUpdate((t, e) => t.sku -> (t.sku + e.sku), t.abc -> e.abc)
}

Я пробовал это, как описано выше, и всегда получал ошибку «not found: value t», когда у меня было два значения.Документация также не отвечает на вопросы в этом направлении.

1 Ответ

0 голосов
/ 20 декабря 2018

Да, вы можете обновить несколько значений при конфликте вставки.Чтобы сделать это, просто предоставьте несколько лямбда-выражений, например,

val q = quote {
  query[Product]
    .insert(lift(product))
    .onConflictUpdate(
      (t, e) => t.sku -> (t.sku + e.sku),
      (t, e) => t.abc -> e.abc)
}

. Это приведет к созданию следующего SQL для MySQL:

INSERT INTO product (id,sku,abc) VALUES (?, ?, ?) 
ON DUPLICATE KEY UPDATE sku = (sku + VALUES(sku)), abc = VALUES(abc)
...