我正在尝试将 postgres 过程返回的自定义类型数组映射到 java
我在 postgres 中有一个自定义类型
CREATE TYPE public.customtype_sample AS(
sampleid bigint,
samplename character varying,
samplevalue character varying
)
该过程在 postgres中返回一个customtype_sample
类型为列的数组customtype_sample[]
我浏览了各种链接: How to map User Data Type (Composite Type) with Hibernate
Hibernate 和 PostgreSQL 中具有 UserType 的数组 --> MappingException
并且可能更多地编写了一个实现 sampletype 数组的类,但我最终得到了这个异常
"could not execute query"
造成的:org.postgresql.util.PSQLException: Method org.postgresql.jdbc4.Jdbc4Array.getArrayImpl(long,int,Map) is not yet implemented.
错误发生在 userType 的 nullSafeGet 方法中
@Override
public Object nullSafeGet(ResultSet rs, String[] names,
SessionImplementor session, Object owner)
throws HibernateException, SQLException {
SampleType[] javaArray = null;
Array array = (Array) rs.getArray(names[0]);
if (!rs.wasNull()) {
javaArray = (SampleType[]) array.getArray();//error occurs here
}
return toReferenceType(javaArray);
}
似乎当我试图获取自定义类型的数组时,可能会出现一些问题,无法理解如何为自定义类型的数组编写用户类型类。任何帮助将不胜感激。