我正在尝试使用 scalikejdbc 访问包含数组字段的架构,即
CREATE TABLE foo (
id INTEGER PRIMARY KEY,
events TEXT[] NOT NULL
);
我在文档或示例中找不到关于数组的任何内容,我只能通过查看 scalikejdbc 源来猜测。
我的模型看起来像
case class Foo(id: Long, events: Array[String])
object Foo extends SQLSyntaxSupport[Foo] with ShortenedNames {
override val columnNames = Seq("id", "events")
private val s = syntax("s")
private def apply(sp: SyntaxProvider[Foo])(rs: WrappedResultSet): Foo = apply(sp.resultName)(rs)
private def apply(rn: ResultName[Foo])(rs: WrappedResultSet): Foo = Foo(
id = rs.get(rn.id),
events = rs.get(rn.events)
)
// ...
}
编译器抱怨
erroneous or inaccessible type events = rs.get(rn.events)
^
如果我将提取器代码更改为
events = rs.array(rn.events).getArray.asInstanceOf[Array[String]]
它编译得很好,但我得到运行时异常
Execution exception[[UnsupportedOperationException: null]]
那么如何使用 scalikejdbc 访问数组字段呢?