JPA / Hibernate - Sequence - 从Oracle迁移到DB2

时间:2014-08-16 23:06:46

标签: java oracle hibernate jpa db2

如果我在域类中为@Id属性使用以下编写的Hibernate / JPA设置,是否可以轻松地从Oracle迁移到DB2?

@SequenceGenerator(name = "ExampleSeq", sequenceName = "EXAMPLE_SEQ", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "ExampleSeq")

为每个表创建序列,先决条件是将它们用作每个插入的ID生成器。这是一个表的脚本片段:

CREATE SEQUENCE "EXAMPLE"."EXAMPLE_SEQ" NOCYCLE NOCACHE START WITH 1 NOMAXVALUE;

DB2是否支持这样的序列?我不确定。

现在我正在开发中使用Oracle,并且不用担心。当我从开发迁移到其他类型的环境(如使用DB2作为持久层数据库的测试或生产)时,我有哪些选择?

一切都适用于JPA / Hibernate抽象,我确信切换是可管理的。只有我提到的那些序列问题困扰着我,我不知道如何处理。

需要你的帮助。感谢。

1 个答案:

答案 0 :(得分:0)

制作配置参数。将其设置为Oracle或DB2。如果必须使用一个或多个数据库,则针对此配置参数的变体进行编程。如果您愿意,Postgresql有一个名为serial的列,负责为每个表创建这些列。您可能正在查看比Hibernate / JPA问题更多的架构定义问题。只需在所有模式定义中使用相同的名称。 ROWNUM = 1是Oracle的事情。使用limit = 1.您可能还需要注意这些问题。