gpt4 book ai didi

java - 如何使用hibernate将自定义类型的数组从postgres映射到java

转载 作者:搜寻专家 更新时间:2023-10-31 20:28:55 25 4
gpt4 key购买 nike

我正在尝试将 postgres 过程返回的自定义类型数组映射到 java

我在 postgres 中有一个自定义类型

CREATE TYPE public.customtype_sample AS(
sampleid bigint,
samplename character varying,
samplevalue character varying
)

该过程返回 customtype_sample 的数组作为 postgres 中类型 customtype_sample[] 的列

我浏览了各种链接: How to map User Data Type (Composite Type) with Hibernate

Array with UserType in Hibernate and PostgreSQL --> MappingException

并且可能更多地编写了一个实现 sampletype 数组的类,但我最终得到了这个异常

"could not execute query" 

引起:org.postgresql.util.PSQLException:方法 org.postgresql.jdbc4.Jdbc4Array.getArrayImpl(long,int,Map) 尚未实现。

错误发生在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);

}

似乎当我尝试获取自定义类型数组时,可能会出现一些问题,无法理解如何为自定义类型数组编写用户类型类。任何帮助将不胜感激。

最佳答案

有同样的错误,我通过将 PostgreSQL JDBC 从 9.2-1002-jdbc4 升级到 9.4-1201-jdbc41 来修复它

关于java - 如何使用hibernate将自定义类型的数组从postgres映射到java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18204780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com