小编Kon*_*nin的帖子

带有多个PK insertOrUpdate()的Scala的Slick抛出异常错误:输入结束时出现语法错误

我正在使用Scala的Slick和PostgreSQL.我和单PK的桌子一起工作得很好.现在我需要使用具有多个PK的表:

case class Report(f1: DateTime,
    f2: String,
    f3: Double)

class Reports(tag: Tag) extends Table[Report](tag, "Reports") {
    def f1 = column[DateTime]("f1")
    def f2 = column[String]("f2")
    def f3 = column[Double]("f3")

    def * = (f1, f2, f3) <> (Report.tupled, Report.unapply)
    def pk = primaryKey("pk_report", (f1, f2))
}

val reports = TableQuery[Reports]
Run Code Online (Sandbox Code Playgroud)

当我有空桌并使用reports.insert(report)它很好.但是,当我使用reports.insertOrUpdate(report)我接收和例外时:

Exception in thread "main" org.postgresql.util.PSQLException: ERROR: syntax error at end of input
  Position: 76
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2102)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1835)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:500)
    at ....
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?怎么解决?

提前致谢.


PS.我尝试了解决方法 …

postgresql scala upsert composite-primary-key slick

7
推荐指数
2
解决办法
3039
查看次数

标签 统计

composite-primary-key ×1

postgresql ×1

scala ×1

slick ×1

upsert ×1