我们有一个使用 Hibernate 作为 OR Mapper 的 java 项目。我们需要该项目与 Oracle 和 Mysql 一起使用。因为有些客户不想安装 Oracle。我们在实体上添加了@sequenceGenerator 注释以具有序列。但是该项目无法使用这些注释连接到 Mysql DBMS。有什么方法可以让我们在 mysql 和 Oracle 模式下都拥有序列,而无需任何更改?
问问题
493 次
2 回答
0
据我所知,这是不可能的,因为
MySQL 支持AUTO_INCREMENT和 Oracle 支持SEQUENCE
还有许多其他因素需要考虑,例如数据类型和索引
由于 Oracle 是ORDBMS,而 mysql 是DBMS,因此缺少 MySQL 中存在的许多功能
解决方案
我认为我们可以为每个人使用单独的数据库来做到这一点
[ 由于我们有许多免费工具可以将数据从 Oracle 转换为 MySQL,我们可以使用它们。甚至其中一些不是免费的,但我们可以隐藏结构使用它们链接1链接2 ]
数据库迁移需要全面了解源数据库和目标数据库的数据类型、索引、列和表选项等
或者
你可以使用同样支持SEQUENCES的 PostgreSQl,它也是一个 GPL
于 2013-01-23T09:55:54.987 回答
0
最便携的方法是使用TableGenerator。它是可移植的,因为没有使用数据库提供者特定的构造。最后生成的值存储到数据库表中,并通过 SQL 查询检索和增加值。
Hibernate文档中也介绍了用法。
于 2013-01-23T19:50:57.527 回答