如何在Hibernate中实现序列生成器?

时间:2015-09-04 12:41:39

标签: java hibernate

如何在Hibernate中为主键id实现Sequence Generator,以便它可以在Oracle,MSSQL和MySQL等多个数据库中使用?

1 个答案:

答案 0 :(得分:1)

要拥有一个可以在许多数据库中使用的序列生成器,最好使用表生成器,因为它不是特定于数据库的。

各种数据库不支持

序列生成器(使用SQL序列)。

您需要创建一个表来维护序列值。 它应该包含2列&一排。 列是

  1. 主键名称(Varchar类型)
  2. 下一个值(Number类型)
  3. 表中的单行应包含用于标识序列下一个值的任何名称的varchar值。

    可用于表生成器的语法如下: @Entity @TableGenerator(name="Your_Generator_Name",table="Your_Generator_Table_Name",pkColumnName="Primay_Key_Name",pkColumnValue="Varchar_value_in_PkColumn",valueColumnName="Next Value") public class MyEntityClass{ @Id @GeneratedValue(strategy="GenerationType.TABLE",generator="name_in_TableGenerator" Integer primaryId; //rest of code }

    有关详细信息,请参阅this link