java - Oracle 和 SQL Server 上的 hibernate

标签 java sql-server oracle hibernate multiple-databases

我在当前在 SQL Server 上运行的应用程序中引入了 DAO 层,因为我需要将其移植到 Oracle。

我想使用 Hibernate 并编写一个工厂(或使用依赖注入(inject))来根据部署配置选择正确的 DAO。在这种情况下,最佳实践是什么?我是否应该有两个包含不同 hibernate.cfg.xml 和 *.hbm.xml 文件的包并在我的工厂中相应地选择它们?我的 DAO 是否有可能在两个 DBMS 中正常工作而不会出现(太多)麻烦?

最佳答案

假设两者之间的表名和列相同,您应该能够使用相同的 hbm.xml 文件。但是,您肯定需要提供不同的 Hibernate 配置值 (hibernate.cfg.xml),因为您需要将 Hibernate 的方言从 SQLServer 更改为 Oracle。

如果两者之间存在轻微的名称差异,那么我将创建两组映射文件 - 每个数据库服务器一组 - 并将它们打包到单独的 JAR 中(例如 yourproject-sqlserver-mappings.jaryourproject-oracle-mappings.jar),并根据环境使用一个 JAR 或另一个 JAR 部署应用程序。

关于java - Oracle 和 SQL Server 上的 hibernate ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1601777/

相关文章:

java - JAVA程序的输出【多态、方法重写】

java - 如何在 Java 中编写类似 splice 的方法

java - 在linux中使用springboot上传镜像

asp.net - Web服务器-信号灯超时时间已到期

sql - 将 T-SQL 查询转换为 ANSI SQL-99 标准

oracle - 如何在 macOS Catalina 上使用 Oracle Instant Client 安装 Perl DBD::Oracle

java - 带有连接池示例的 ClassNotFoundException (org.postgresql.Driver)

sql-server - SQL Server标量函数与子查询执行计划分析

oracle转义函数

java - 10 位 BigDecimal 无法保存在 NUMBER(10, 2) 列中