我已经测试过,这本身适用于 float[] 数组,所以例如这有效
@Entity
public class MyEntity {
float[] myArray
}
但是如果我对二维数组做同样的事情:
float[][] myArray
我收到此错误:
原因:java.lang.ClassCastException: 类 org.hibernate.type.internal.BasicTypeImpl 无法转换为类 org.hibernate.type.BasicPluralType (org.hibernate.type.internal.BasicTypeImpl 和 org.hibernate.type.BasicPluralType 位于加载程序“app”的未命名模块中)
因此,将列映射为 json 并使用 columnDefinition = "jsonb" 似乎是唯一的解决方案。是否有另一种方法来映射 hibernate 6.5 原生支持的多维数组?
考虑使用内置的自定义类型定义
FloatPrimitiveArrayJavaType
@Type(value = FloatPrimitiveArrayJavaType.class, parameters = @Parameter(name = "sql_array_type", value = "float_array"))
@Column(name = "2d_float_array", columnDefinition = "float_array[][]")
private float[][] myArray;