从Resultset scala中检索对象数组
Posted
技术标签:
【中文标题】从Resultset scala中检索对象数组【英文标题】:Retrieving Array of object from a Resultset scala 【发布时间】:2019-01-25 00:23:47 【问题描述】:尝试使用 resultSet.getArray("variables")
从配置单元 JDBC ResultSet
检索 Array 对象,但收到错误为 Java.sql.SQLException: Method Not Supported
代码:
case class Variables(val variable:String, val type:String, val value:String)
case class Updates(val title:String, val variables:Array[Variables])
val resultSet = stmt.executeQuery("select * from updates")
val collection = new Iterator[Updates]
def hasNext = resultSet.next()
def next = Updates(resultSet.getString("title"),resultSet.getArray("variables").getArray.asInstanceOf[Array[Variables]])
.toStream
错误:
Java.sql.SQLException: Method Not Supported at org.apache.hive.jdbc.HiveBaseResultSet.getArray(HiveBaseResultSet.java:117)
另外请建议是否有任何直接方法将resultSet
对象转换为case class Updates
而无需此转换。
谢谢
【问题讨论】:
【参考方案1】:你尝试过使用.getObject
函数吗?
getObject(int columnIndex, Class<T> type) or
getObject(String columnLabel, Class<T> type)
【讨论】:
此错误表明不支持Array[Variables]
,因此您可以尝试使用play.api.libs.json._
,然后尝试为您的案例类创建隐式转换来进行转换。
不支持相同的错误方法
resultSet.getArray("variables")
您是否尝试检查此代码是否运行?
所以意味着您使用的方法不受您使用的版本的支持,或者可能已弃用兄弟。请参考您使用的版本的官方文档。
显然,getObject 最终会在这里抛出一个异常。代码:github.com/apache/hive/blob/…以上是关于从Resultset scala中检索对象数组的主要内容,如果未能解决你的问题,请参考以下文章
java:把查询结果存储到resultSet对象中,在把该对象的数据放置在一个JTable对象中
使用 underscore.js 从对象/数组中仅检索一个字段