如何从 Spring Boot JPA 中的列获取数组信息(JDBC 类型错误的方言映射异常)

问题描述 投票:0回答:1

我无法从角色栏中获取

{"role1","role2","role3"}

这是下图所示的实体

@Entity
public class User {
    //...

    @Column(columnDefinition = "text[]")
    @Type(type = "com.baeldung.hibernate.arraymapping.CustomStringArrayType")
    private String[] roles;

    // getters and setters
}

这是如下所示的 JPARepository

public interface UserRepository extends JpaRepository<User, Long> {

    @Query(value = "SELECT DISTINCT unnest(u.roles)::text FROM User u", nativeQuery = true)
    List<String> findDistinctRoles();
}

我得到了 JDBC 类型的嵌套异常方言映射?

我该如何修复它?

java spring-boot jpa spring-data-jpa
1个回答
0
投票

您使用的是 Postgree JDBC/数据库吗?此语法与 Postgree 数据库兼容。 如果是,检查配置文件中的方言,它应该是:spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect。如果没问题的话,尝试直接在数据库中执行sql查询,看看是否能正确执行。

© www.soinside.com 2019 - 2024. All rights reserved.