oracle中的主键

不要用里面的number作为主键,数据库中使用long或者int.这样反响工程的到的主键就是Long或者Intger类型的了。
2>如果非用不可也有两种方案供选择:
  ① 每次都要将数据转换成Bigdecimal然后插入到数据库中,具体可以通过 Bigdecimal的构造方法,例如你的主键是bg,那么添加520到主键就是:
bg=new BigDecimal(520);这种麻烦死了。
  ②修改映射类型要比上面的好一些。将bean中的BigDecimal为int或long(当然也可以是他们的封装对象Integer 和Long了,因为Integer和Long继承自number,所以子类对象传给父类引用时没问题的)。然后再修改配置文件,将主键映射的类型修改过来( 将<id name="id" type="java.math.BigDecimal">改为<id name="id" type="java.lang.Integer")。这种比上面的省事很多。

现在给你一点建议:
   不要用number做主键,那个实在是拿大炮打蚊子。Oracle设计number是用来做数学相关的,hibernate把他映射成BigDecimal,因为BigDecimal继承了java.lang.number并且实现了Serializable, Comparable<BigDecimal> 两个接口。里面封装了很多很多数学方法(你可以看看api文档具体有哪些,以后也许会用到)。这样做是为了方便程序开发,因为有的字段使用number会非常方便,比如你做个数学应用软件或是工程学相关的,里面的数值大部分都会用number。

你可能感兴趣的:(oracle)