我无法从角色栏中获取
{"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 类型的嵌套异常方言映射?
我该如何修复它?
您使用的是 Postgree JDBC/数据库吗?此语法与 Postgree 数据库兼容。 如果是,检查配置文件中的方言,它应该是:spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect。如果没问题的话,尝试直接在数据库中执行sql查询,看看是否能正确执行。