首先了解一下ORACLE 10G中NUMBER类型。
NUMBER (precision,scale)
precision表示数字中的有效位。如果没有指定precision的话,Oracle将使用38作为精度。
scale表示数字小数点右边的位数,scale默认设置为0.如果把scale设成负数,Oracle将把该数字取舍到小数点左边的指定位数。如果需要小数位,一般设置成2或3
通过Hibernate映射实体时会根据数据库中NUMBER类型的精度,生成相应的POJO类中相对应的主键类型。经过亲测结果如下:
NUMBER(1)
POJO类中生成的是Boolean
publicclass Test implements java.io.Serializable { // Fields private Boolean id; } |
NUMBER(2)
POJO类中生成的是Byte
publicclass Test implements java.io.Serializable { private Byte id; } |
NUMBER(3) NUMBER(4)
Short |
NUMBER(5) NUMBER(6)NUMBER(7) NUMBER(8)
NUMBER(9)
Integer |
NUMBER(10) NUMBER(11)NUMBER(12) NUMBER(13)
NUMBER(14) NUMBER(15)NUMBER(16) NUMBER(17)
NUMBER(18)
Long |
NUMBER(19)-----NUMBER(38)
BigDecimal |
当NUMBER无精度时,默认38位
POJO类中生成的是BigDecimal
阿升
2012-3-22
欢迎关注阿升老师的微信公众平台,在这里与我互动。
方法1:打开微信-->发现-->扫一扫-->关注
方法2:打开微信-->通讯录-->订阅号-->选择右上角+号输入"与或非"有一个黄铅笔头的图标-->关注