使用hibernate支持多个数据库

时间:2015-04-01 07:40:58

标签: java spring oracle hibernate postgresql

我正在开发一个当前支持MSSQL和MYSQL的应用程序,现在我们需要使它与Oracle和Postgresql兼容。我们强烈依赖于为记录生成的Id,因为我们使用相同的Id为记录生成一些逻辑标识符。因此,我们希望每个表都拥有它自己的序列,这样每个新记录都有一个因此,在序列n,n + 1,n + 2中的新逻辑标识符将是XYn,XY(n + 1),XY(n + 2)。

使用生成策略用于Id的生成策略适用于MSSQL和MYSQL,但不能与Oracle或Postgresql一起使用,因为生成策略AUTO最终映射到这些数据库的SEQUENCE。我需要为所有这些数据库维护一个公共代码,并且不能进行任何数据库更改。 请提出一些方法来完成这项工作。

2 个答案:

答案 0 :(得分:1)

如果您想在每个RDBMS中移植,GenerationStrategy=TABLE是一个解决方案。检查this article

中的一些信息

答案 1 :(得分:0)

为什么不使用UUID而不是序列号?这更便携。

在Java中已经有了UUID的实现。

据我记得,Oracle中没有内置的序列机制,所以你不能使用Hibernate的ID生成器。