概述
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数据库number类型使用hibernate反向生成JavaBean的数据类型的全部内容,希望文章能够帮你解决ORACLE数据库number类型使用hibernate反向生成JavaBean的数据类型所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复