所有数据库供应商的唯一ID生成

时间:2012-12-26 11:35:28

标签: hibernate jpa annotations

我有一个使用hibernate-jpa annoatation开发的项目。

我有机会使用JPA创建id,它是AUTO,Increment,sequence和table。

Auto适用于所有数据库供应商,但它会同时增加所有表的ID。

Ex:表a - id为100

表b id为101。

c id是102。

我想要像

这样的ids

对于表A,id应为100到1000

对于表B,id应为100到1000

对于所有表格。

我不想创建单独的序列&表并填充数据库。

1 个答案:

答案 0 :(得分:1)

AUTO不会将所有表的ID一起递增。

这是它的作用(来自JPA规范):

  

AUTO值表示持久性提供程序应该选择   适用于特定数据库的战略。自动生成   策略可能期望存在数据库资源,或者它可能会尝试   创造一个。供应商可能会提供有关如何创建此类文档的文档   资源,如果它不支持模式生成或   无法在运行时创建架构资源。

如果您关心应该使用的策略,那么请定义一个显式策略,以及此策略所需的数据库资源。