java - Java 实体的 id 字段的 Long 与 Integer

标签 java jpa persistence

Jpa 实体生成器将整数类型分配给我的实体的 id 字段。我的数据库中相应的属性/列是串行类型(是的 postgres)。我还将整数类型分配给我的实体 id 字段。但是我在 this page 上看到了 Long getId() 的用法。 .我还在 geomajas 示例中看到了这种类型的类型分配。使用 Integer 时有什么陷阱吗?我的意思是,是的,您必须小心 ID 不低于 0 的整数,但同时您还必须确保您的 Long Id 不大于 2,147,483,647。那么这里有什么交易?

编辑:我混淆了 Long 和无符号整数,所以我想我在想什么是“java 实体的 id 字段的无符号整数与 Integer”现在我对长整数和无符号整数的混淆已经消失了,这是胡说八道。我的错。感谢您的回答和评论。我想如果我会使用 bigserial jpa 实体生成器也会使用 Long。

最佳答案

Long 的容量比 Integer 数据类型大得多,所以如果您不确定数据的长度,最好使用 Long 类型数据...

另一方面,由于 Long 具有更大的容量,它会使用额外的空间,如果您确定您的数据不会大于 Integer 数据类型,那么使用 Long 只会让你的代码效率低下

关于java - Java 实体的 id 字段的 Long 与 Integer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17398192/

相关文章:

java - 尝试将连接对象传递给另一个 java 类时出现 NullPointerException

java - @OneToMany 和 @ElementCollection 之间的区别?

java - 定义 HibernateExceptionTranslator : No persistence exception translators found in bean factory

java - ClassNotFoundException : javax. annotation.Generated with JDK 11

hibernate - 对于使用 Spring 和 JDBCTemplates、iBatis/myBatis 或 Hibernate 的新项目?

java - JaxB - 如何不映射特定的 XML 节点

java - 如何使用 Jersey 2.5 将参数传递给 REST 资源

oop - 将哪些功能构建到业务对象中?

java - 比较器<? super T> 作为函数参数-如何使用?

java - 在 Spring Data 中更新