问题描述
如何修复这个错误?
没有 JDBC 类型的方言映射:2003
这是我的方言类 - 子实体没有字段,与错误相关
public class CustomPostgresql10Dialect extends Postgresql10Dialect {
public CustomPostgresql10Dialect() {
super();
this.registerHibernateType(2003,"sql_array_type");
}
}
spring.jpa.database-platform=io.alphaminds.base.hibernate.dialect.CustomPostgresql10Dialect
spring.jpa.hibernate.dialect=io.alphaminds.base.hibernate.dialect.CustomPostgresql10Dialect
春季 2.5.2
还有我的实体
@TypeDef(
name = "enum-array",typeClass = EnumArrayType.class
)
@FieldDefaults(level = AccessLevel.PRIVATE)
public abstract class Contact extends AuditedEntity {
//...
@Type(type = "enum-array",parameters = @org.hibernate.annotations.Parameter(
name = "sql_array_type",value = "messengers"))
MessengerType[] messengers;
}
解决方法
您需要通过在 registerColumnType
中调用 Dialect
来注册 SQL 类型,尽管我认为这不是您真正想要的,因为这将对所有枚举使用单个 SQL 类型数组。您应该通过 @Column(columnDefinition = "int[]")