ActiveJDBC: integer[]在PostgreSQL中,一个数据库中有多个模式



我正试图使用ActiveJDBCinteger[]从我的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是否支持在后台进行这种转换

相关内容

最新更新