【问题标题】:Compilation error on insert-or-update action in Quill when using H2 database使用 H2 数据库时 Quill 中插入或更新操作的编译错误
【发布时间】:2019-06-08 07:58:56
【问题描述】:

在使用 H2 数据库时是否可以在 Quill 中执行插入或更新操作?如果我添加到.insert 操作.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)

【问题讨论】:

    标签: scala compiler-errors h2 insert-update quill


    【解决方案1】:

    好像没有。

    插入或更新(更新插入、冲突)

    Postgres、SQLite 和 MySQL 支持 Upsert

    https://github.com/getquill/quill

    【讨论】:

    • 我担心它不支持 H2,我希望我错了。 :) 谢谢你的回答。
    猜你喜欢
    • 2020-08-06
    • 1970-01-01
    • 2020-08-16
    • 2020-11-19
    • 2020-07-18
    • 1970-01-01
    • 2021-02-25
    • 1970-01-01
    • 2022-12-20
    相关资源
    最近更新 更多