我的列 id 为 NUMBER(4,0)。
我尝试使用 Integer、Short、BigDecimal 和 BigInt 作为 id 实例变量的类型。
我收到不同的错误,表明使用的类型不正确。
我正在使用Oracle 11g
。
Wrong column type in MyDatabase.schema for column id. Found: number, expected: smallint
最佳答案
在oracle中NUMBER(4,0)
表示总位数为4的数字。
在 Java 类型中,不完全可用相同的原始数据类型...最接近的数据类型是:
- 字节:-128 到 127(3 位数字)
- 短:-32,768 到 32,767(5 位数字)
在这种情况下,我建议使用较小的一个(字节),以避免溢出 java 端的 oracle 变量限制。
因此 hibernate 列定义如下所示:
@Column(name = "NFOURCOL", columnDefinition = "NUMBER(4,0)")
public Byte getNfour() {
return nfour;
}
columnDefinition = "NUMBER(4,0)"
部分可以解决这个问题,它告诉 hibernate Oracle 端列的预期定义是什么。
关于java - Oracle Hibernate 映射 - NUMBER(4,0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17784317/