星空网 > 软件开发 > Java

hibernate实体类属性应该使用int还是Integer

     我们知道,hibernate并没有强制要求pojo(实体类 )属性必须是基本数据类型或者是包装类,但是我们把属性声明为基本数据类型( primitive types directly)或者包装类 ( wrapping classes for primitives)对我们代码的编写有着深远的影响。
 

1,使用基本数据类型的好处

a),使用基本数据类型意味着你所定义的属性不允许为空,这样你在获取该属性的时候就不可能会得到一个null值。
b),int在java中占32/64 bits,而Integer占了16个字节,所以使用Integer在性能方面要比int差一些。
 

2,使用包装类的好处

a),当我们不想给这个属性设置任何值的时候,我们可以给它一个null值(前提是数据库的字段允许插入NULL)。
b),我们可以在pojo类中使用验证注解对属性的值做校验(例如: javax.validation.constraints.NotNull)
 

3,hibernate官方推荐的做法

下面引用自hibernate官方文档
Cat has a property called id. This property maps to the primary key column(s) of a database table. The property might have been called anything, and its type might have been any primitive type, any primitive "wrapper" type, java.lang.String or java.util.Date.
...
We recommend that you declare consistently-named identifier properties on persistent classes and that you use a nullable (i.e., non-primitive) type.
 
可以看出,hibernate是建议开发者使用包装类的。
 

4,两者在实际开发中的比较

a),如果你的数据库字段是允许为空的,使用包装类。如果不允许为空,使用包装的时候,如果你往数据库插入null值,此时就会抛出异常。然后你就可以对异常进行捕获并处理。
b),使用基本数据类型的时候,如果字段是NULL,那么JDBC会返回0,但是这里会有一个问题。有可能0在你的业务逻辑代表着特定含义,这时候就可能出现一些意想不到的后果。
 
 
总结:在项目中去使用包装类型而不是基本数据类型,这样可以使你编写代码更简单,除非有人给你一个更好的理由去使用基本数据类型或者你的上头要求一定要使用基本数据类型。
 
 
 



原标题:hibernate实体类属性应该使用int还是Integer

关键词:Hibernate

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

泰国货运火车:https://www.goluckyvip.com/tag/88778.html
往泰国寄东西怎么寄:https://www.goluckyvip.com/tag/88779.html
产品数据分析:https://www.goluckyvip.com/tag/8878.html
寄快递到泰国怎么寄:https://www.goluckyvip.com/tag/88780.html
快递寄到泰国怎么寄:https://www.goluckyvip.com/tag/88781.html
快递 到 泰国:https://www.goluckyvip.com/tag/88782.html
九寨沟景区地图(详细指南和攻略):https://www.vstour.cn/a/365176.html
重庆品胜科技与星苹台达成合作 助力部队现代化后勤建设 :https://www.kjdsnews.com/a/1836523.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流