这次被自己坑翻了,以前没注意过这点。
在Java中,Boolean和boolean是不同的:
boolean是基本数据类型;
Boolean是它的封装类,和其他类一样,有属性有方法,可以new,也可以直接赋值。
自jdk1.5.0以上版本后,Boolean在"赋值"和判断上和boolean一样,boolean b1 = true ; 或者 Boolean b2 = true ; 都可以。
唯一只能使用Boolean上的就是从列表或者哈希表获取值时。 比如 boolean t = false; Map map = new HashMap(); map.put("t", t);
那么获取值时只能用 Boolean t1 = (Boolean) map.get(t); //前面只能用Boolean强制转换,不能使用boolean.
Boolean 是boolean 的实例化对象类,和Integer对应int一样 ;
然而最大的区别在于,hibernate中对应实体使用基础数据类型的时候不能为null,为null时会报错。
使用封装类型,就OK了。
一般来说除非有特殊的要求必须这个值不能为空,hibernate对应的实体类中都要使用封装类型,不要使用基本数据类型。