慎用Java 的 Long 代替 long

836 查看

Long 包装类型,默认为null
long 基本类型,默认为0

在ORM模型中,如果一个实体的域是Long类型,数据库该域的值默认是0,那么在取出该实体时,
Long域的值为0,而不是null。

这些情况要求用户的程序在使用该Long类型的域的时候,要进行两重判断,
即:field == null && field == 0。

以上情况多出现在用户设置域默认值的时候发生。

为避免此情况,一般域是数值类型的采用基本类型,这样语意更明确。
BTW:看到时间的毫秒值是null, 实在是让人抓狂。