【发布时间】:2025-11-21 15:10:01
【问题描述】:
我已经使用 postgresql 创建了新的 Spring Boot 项目。我喜欢使用 JPA Repository 本机查询来使用 posgressql array_agg(ex:get all department),但它在发布时遇到了一些错误。我尝试了一些替代解决方案,但无法获得预期的数据。
错误:
org.springframework.orm.jpa.JpaSystemException:没有 JDBC 类型的方言映射:2003; 嵌套异常是 org.hibernate.MappingException:没有 JDBC 类型的方言映射:2003
预期:应该得到数组或数据列表
@Repository
public interface PostGroupRepository extends JpaRepository<PostGroup, Integer> {
@Query(value = "SELECT array_agg(department) FROM boxinfo;", nativeQuery = true)
public Object[] getDept();
}
【问题讨论】:
-
你尝试过什么?由于 postgres 返回数据类型 text[] - JPA /Hibernate 将没有数据类型。您需要进行自定义数据类型映射。
-
我只是尝试了备用查询。如果可能的话,可以举一些自定义数据映射的例子@Lucia
-
@Lucia 可以直接进入本机查询本身??无需添加额外的工作?
标签: spring-boot spring-mvc java-8 spring-data-jpa