java - 如何检测 long 类型是否真的为 NULL?

标签 java hibernate nullpointerexception long-integer

我们的 MySQL 数据库中有一个可为空(长型)列(名为 referral)。我们为 ORM 使用 hibernate 。

我正在尝试获取给定成员的列值。有些是空的,如果不是,它是一个指向另一个成员的 id,该成员是 referrer。

问题出在我试图检测该成员的列是否为空的 java 代码中,如果不是,则执行某些操作。

String referrerAffiliateId = Long.toString(member.getReferral());
if (referrerAffiliateId != null){
    //do something
}

member.getReferral() 返回推荐列的值(long 类型)。其中一些列为空,一些则不是。

上面的代码可以正常编译,但是当我对推荐列为 null 的用户调用该方法时,我得到了一个 nullPointerException。

我该如何正确地对此进行检测?

提前致谢!

完整答案:

感谢@Marcelo 提供最佳正确答案。

这是最终状态的代码:

Long referrerAffiliateId = member.getReferral();
if (referrerAffiliateId != null) {
    //...
}

最佳答案

假设 member.getReferral() 返回一个 Long,使用:

if (member.getReferral() != null)

在 Hibernate 中,如果您希望能够检测属性中的可空性,则不得使用原始类型,因为它们始终具有默认值 0多头。

关于java - 如何检测 long 类型是否真的为 NULL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8749186/

相关文章:

java - 在 JConsole 中可见的 Coherence 节点 MBean 的 JMX 查询问题

java - @事务: Is there a way that hibernate can persist child transacttion when parent fails

java - 什么是NullPointerException,我该如何解决?

java - Battlecode 2015 ant 运行导致 Win32ShellFolder2 类中出现 nullPointerException

java - WSDL 中忽略的 JAX-B 全局绑定(bind)

java - 抽象数据类型 : Array of objects

java - 如何在 hibernate 响应中检查列表内的列表是否为空

java - 解决 Java 中的 NullPointerException 问题 - 认为这是一个初始化问题,但找不到它

java - 使用@PathVariable时如何使用spring boot和thymeleaf在首页导入静态资源

mysql - 使用 spring boot、hibernate 和 mysql 批量插入无法正常工作