使用原始类型,如
private int age;
它的致命缺点是: age永远不会为空值,这会使hibernate防空值的功能形同虚设。
具体来说,
假说 age 的 nullable = false, 那如果setAge()没被调用,我们就会预期hibernate在运行时报错,防止age为空的数据进入数据库。
然而,实际的结果是:JRE会把age的值为0,然后把 age=0 的数据插入数据库,而age = 0并不是我们想要的东西。
而如果使用 private Integer age,就没有这个问题。