我正试图使用ActiveJDBC
将integer[]
从我的PostgreSQL
数据库正确转换为java equivalent int[]
。我正确地完成了取回,但返回的对象是weblogic.jdbc.wrapper.Array_org_postgresql_jdbc_PgArray
。我还没有找到一种方法来转换它。
我已经尝试了两种不同的访问数据的方法:
首先,使用标准record.findFirst("id = ?", id)
格式。因为我的数据库中有多个模式,所以我在模型中添加了@Table
符号。
第二,我试着做一个record.findBySQL("select array from record where id = ?", id)
。我也试过array::integer[]
.
每次返回PgArray类型。我一直在寻找一种方法将这种类型转换为其他类型,但没有任何工作。
有办法做到这一点吗?我是否需要使用ActiveJDBC
以外的其他数据检索方式?
JDBC定义java.sql.Array
来处理数组类型的列。PgArray
只是java.sql.Array
的Postgres实现。
给定数组对象a
,您可以调用(Integer[])a.getArray()
从JDBC数组对象获得Integer
数组(如果JDBC驱动程序决定它将返回Integer
对象而不是其他Numbers
)。一个辅助方法来提取值并转换为int[]
可能是一个好主意。
不知道activejdbc是否支持在后台进行这种转换