Ошибка компиляции при операции вставки или обновления в Quill при использовании базы данных H2 - PullRequest
0 голосов
/ 08 июня 2019

возможно ли выполнить действие вставки или обновления в Quill при использовании базы данных H2?Если я добавлю к .insert action .onConflictIgnore, я получу ошибку компиляции:

[error] [...]/repository/HeadlinesRepository.scala:41:36: exception during macro expansion: 
[error] java.lang.IllegalStateException: Action ast can't be translated to sql: 'querySchema("headlines").insert(v => v.link -> ?, v => v.title -> ?).onConflictIgnore'
[error]         at io.getquill.util.Messages$.fail(Messages.scala:15)
[error]         at io.getquill.context.sql.idiom.SqlIdiom.$anonfun$actionTokenizer$1(SqlIdiom.scala:387)
[error]         at io.getquill.idiom.StatementInterpolator$Tokenizer$$anon$1.token(StatementInterpolator.scala:17)
[error]         at io.getquill.idiom.StatementInterpolator$TokenImplicit.token(StatementInterpolator.scala:27)
[error]         at io.getquill.context.sql.idiom.SqlIdiom.$anonfun$astTokenizer$1(SqlIdiom.scala:57)
[error]         at io.getquill.idiom.StatementInterpolator$Tokenizer$$anon$1.token(StatementInterpolator.scala:17)
[error]         at io.getquill.context.sql.idiom.SqlIdiom$$anon$1.token(SqlIdiom.scala:49)
[error]         at io.getquill.context.sql.idiom.SqlIdiom$$anon$1.token(SqlIdiom.scala:46)
[error]         at io.getquill.idiom.StatementInterpolator$TokenImplicit.token(StatementInterpolator.scala:27)
[error]         at io.getquill.context.sql.idiom.SqlIdiom.translate(SqlIdiom.scala:39)
[error]         at io.getquill.context.sql.idiom.SqlIdiom.translate$(SqlIdiom.scala:23)
[error]         at io.getquill.H2Dialect$.translate(H2Dialect.scala:20)
[error]         at io.getquill.context.ContextMacro.translateStatic(ContextMacro.scala:51)
[error]         at io.getquill.context.ContextMacro.translate(ContextMacro.scala:37)
[error]         at io.getquill.context.ContextMacro.expand(ContextMacro.scala:24)
[error]         at io.getquill.context.ContextMacro.expand$(ContextMacro.scala:21)
[error]         at io.getquill.context.ActionMacro.expand(ActionMacro.scala:10)
[error]         at io.getquill.context.ActionMacro.expandBatchAction(ActionMacro.scala:121)
[error]         at io.getquill.context.ActionMacro.runBatchAction(ActionMacro.scala:71)

1 Ответ

1 голос
/ 08 июня 2019

Кажется, что нет.

вставка или обновление (upsert, конфликт)

Upsert поддерживается Postgres, SQLite и MySQL

https://github.com/getquill/quill

...