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 を使用して配列フィールドにアクセスするにはどうすればよいでしょうか。