【发布时间】:2014-02-27 00:11:15
【问题描述】:
以下代码应该插入一个新条目并返回它(带有自动生成的 id)。它适用于 PostgreSQL。
val ret = elementTableQuery.returning(elementTableQuery) += Element("Arg1", "Arg2", "Arg3")
抛出的异常是:
JdbcSQLException: Invalid value "2" for parameter "columnIndex" [90008-172] (DbException.java:329)
org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
org.h2.message.DbException.get(DbException.java:169)
org.h2.message.DbException.getInvalidValueException(DbException.java:215)
org.h2.jdbc.JdbcResultSet.checkColumnIndex(JdbcResultSet.java:3088)
org.h2.jdbc.JdbcResultSet.get(JdbcResultSet.java:3116)
org.h2.jdbc.JdbcResultSet.getString(JdbcResultSet.java:279)
ch.xxx.test.data.ElementCreator$.create(InitialDataCreator.scala:199)
如果我删除“返回”部分,该语句也有效(在 PortsgreSQL 和 H2 中)。如果我只返回生成的 Id,它也可以工作:
val ret = elementTableQuery.returning(elementTableQuery.map(_.id)) += Element("Arg1", "Arg2", "Arg3")
我发现了一个错误报告 (https://github.com/slick/slick/issues/230),它似乎与相同的问题有关,但由于无法复制而被关闭。
我应该打开一个新错误吗?我的查询有什么问题吗?
感谢您的任何意见。
【问题讨论】:
标签: input return-value h2 slick slick-2.0