java - 盒装与原始类型作为实体 id

标签 java database hibernate jpa orm

在 JPA(Hibernate 实现)中,哪种类型更适合用于实体的 id: Boxed 类型(例如 Integer)还是 Unboxed 类型(例如 int)?

friend 说应该使用 Boxed 类型,因为当你在程序中创建一个新实体时,Hibernate 看到 id 为 null 并理解它应该在数据库中创建一个新行(在对比如果 id 不是 null Hibernate 可能会更新数据库中的现有行)。

但我的实体的 id 是 int,它运行良好,没有任何错误,我们知道原始实例变量的默认值为 0。所以他说,也许hibernate把0当作特殊的,假设对象是新的。

最佳答案

似乎 Current Documentation 建议使用盒装类型。

We recommend that you declare consistently-named identifier attributes on persistent classes and that you use a nullable (i.e., non-primitive) type.

关于java - 盒装与原始类型作为实体 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51642979/

相关文章:

Java运行curl命令在Windows和Linux上是不同的

python - PyPy 中的 SQLAlchemy 安装

java - 如何在xml中映射@Field

mysql - HSQLDialect 到 MySQL5InnoDBDialect、Hibernate

java - hibernate 列表中未获取 @id 字段的空值

java - 将字节数组转换为串行通信中的实际字符串

java - 创建具有两个以上子级的通用树,每个子级可能具有独特的属性

java - 使用 hibernate 5.0.2 和 glassfish4.0

database - 我应该合并这些数据库表吗?

mysql - 有没有一种方法可以创建主键并将其级联到其他表中,而无需将数据重新输入到新表中?