通过 ScalikeJDBC 访问 PostgreSQL 数组
Accessing to PostgreSQL array via ScalikeJDBC
我尝试使用 ScalikeJDBC 访问 PostgreSQL 9.4 中的数组。 DDL:
create table itab (
code varchar primary key,
group_list varchar[]
);
在Scala应用中定义了一个简单的案例class和loader。
case class Item(code: String, groupSet: List[String])
trait loader {
def loadAllItems: List[Item] = {
insideReadOnly { implicit session =>
sql"select CODE, GROUP_LIST from ITAB"
.map(e => Item(
e.string("code"),
e.array("group_list").asInstanceOf[Buffer[String]]
)).list.apply()
}
}
}
当我 运行 一个应用程序时,我得到 运行 时间异常
java.lang.ClassCastException: org.postgresql.jdbc4.Jdbc4Array cannot be cast to scala.collection.mutable.Buffer
我该如何解决?
谢谢。霍维曼
使用rs.array("group_list").getArray.asInstanceOf[Array[String]]
就在java.sql.Array下面
已解决。 toList 工作正常 ;)
e.array("group_list").getArray.asInstanceOf[Array[String]].toList
我尝试使用 ScalikeJDBC 访问 PostgreSQL 9.4 中的数组。 DDL:
create table itab (
code varchar primary key,
group_list varchar[]
);
在Scala应用中定义了一个简单的案例class和loader。
case class Item(code: String, groupSet: List[String])
trait loader {
def loadAllItems: List[Item] = {
insideReadOnly { implicit session =>
sql"select CODE, GROUP_LIST from ITAB"
.map(e => Item(
e.string("code"),
e.array("group_list").asInstanceOf[Buffer[String]]
)).list.apply()
}
}
}
当我 运行 一个应用程序时,我得到 运行 时间异常
java.lang.ClassCastException: org.postgresql.jdbc4.Jdbc4Array cannot be cast to scala.collection.mutable.Buffer
我该如何解决? 谢谢。霍维曼
使用rs.array("group_list").getArray.asInstanceOf[Array[String]]
就在java.sql.Array下面
已解决。 toList 工作正常 ;)
e.array("group_list").getArray.asInstanceOf[Array[String]].toList