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