我在当前在 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.jar
和 yourproject-oracle-mappings.jar
),并根据环境使用一个 JAR 或另一个 JAR 部署应用程序。
关于java - Oracle 和 SQL Server 上的 hibernate ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1601777/