0

我有一个列的 id,因为NUMBER(4,0).我尝试使用 Integer、Short、BigDecimal 和 BigInt 作为 id 实例变量的类型。我得到了不同的错误,表明使用的类型不正确。

我正在使用Oracle 11g.

Wrong column type in MyDatabase.schema for column id. Found: number, expected: smallint
4

1 回答 1

1

在 oracleNUMBER(4,0)中表示总位数为 4 的数字。

在 java 类型中不完全可用相同的原始数据类型......最近的数据类型是:

  • 字节:-128 到 127(3 位)
  • 短:-32,768 至 32,767(5 位数)

在这种情况下,我建议使用较小的一个(字节),以避免在 java 端溢出 oracle 变量限制。

所以休眠列定义如下所示:

@Column(name = "NFOURCOL", columnDefinition = "NUMBER(4,0)")
public Byte getNfour() {
  return nfour;
}

columnDefinition = "NUMBER(4,0)"部分起到了作用,它告诉休眠oracle端列的预期定义是什么。

于 2015-10-24T15:09:20.597 回答