我有一个列的 id,因为NUMBER(4,0).
我尝试使用 Integer、Short、BigDecimal 和 BigInt 作为 id 实例变量的类型。我得到了不同的错误,表明使用的类型不正确。
我正在使用Oracle 11g
.
Wrong column type in MyDatabase.schema for column id. Found: number, expected: smallint
在 oracleNUMBER(4,0)
中表示总位数为 4 的数字。
在 java 类型中不完全可用相同的原始数据类型......最近的数据类型是:
在这种情况下,我建议使用较小的一个(字节),以避免在 java 端溢出 oracle 变量限制。
所以休眠列定义如下所示:
@Column(name = "NFOURCOL", columnDefinition = "NUMBER(4,0)")
public Byte getNfour() {
return nfour;
}
这columnDefinition = "NUMBER(4,0)"
部分起到了作用,它告诉休眠oracle端列的预期定义是什么。