Java 数据库 ID - 原始类型或包装类型 [重复]

Posted

技术标签:

【中文标题】Java 数据库 ID - 原始类型或包装类型 [重复]【英文标题】:Java database IDs - primitive or wrapped type [duplicate] 【发布时间】:2014-05-29 14:18:55 【问题描述】:

我正在使用 Eclipse、Java、mysql,并使用 JPA 来生成实体。我手工编写 DAO。

对于数据库 ID,我在 MySQL 中使用 INT,在 Java 中一直使用 Long。使用 Long 类型与仅使用原始 long 类型相比有优势还是劣势?我做了一些假设并选择了Long。我只是在验证我的假设。

谢谢

【问题讨论】:

【参考方案1】:

一个区别是Long 可以是null,但long 不能是0。我觉得拥有Long 很好,因为您可以进行简单的检查,例如实体是否尚未持久化——通过检查id == null 是否存在;

【讨论】:

以上是关于Java 数据库 ID - 原始类型或包装类型 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

为啥java的一些概念需要使用包装类而不是原始数据类型[重复]

始终为 JPA @Id 使用原始对象包装器而不是原始类型?

原始类型包装器

Java数据类型包装器

Java 包装类

为啥我们将字符串数组作为参数传递给 main() 方法,为啥不传递任何集合类型或包装类型或原始类型?