我设置了我的实体属性

@GeneratedValue
Long id;

我能够为数据库中的实体生成id。我的问题是为什么所有实体共享相同的增量数? 是不是每个表都应该从零开始计数?

有帮助吗?

解决方案

这取决于底层数据库。 GenerationType 默认为AUTO,而Hibernate选择取决于数据库的三种变体之一。如果您想特别使用它,请将其设置为 @GeneratedValue

的属性

其他提示

这与数据库有关。 JPA实现使用不同的ID生成器,具体取决于它们使用的数据库系统。例如,使用Oracle,将创建单个序列,该序列将用于为所有实体类型生成ID。默认情况下,它不会为每个实体创建序列,因为通常没有理由。相同的逻辑适用于使用序列而不是自动递增列的其他数据库系统。

我不是100%确定JPA API是否允许您更改此行为,但我知道Hibernate注释会这样做。但是,你没有告诉我们你正在使用哪个数据库或者你正在使用哪个JPA实现,所以我不能给你更多的建议。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top