【问题标题】:Hibernate and DB2 on z/OS - auto-create tablez/OS 上的 Hibernate 和 DB2 - 自动创建表
【发布时间】:2014-06-12 06:58:00
【问题描述】:

我目前的问题是我想在 DB2 上使用 Hibernate 来做这个很好的 ORM 东西,它以某种方式工作,但并不是我想要的那样...... 问题的核心是我只能通过 JDBC 连接到 DB2 子系统,并且必须在 SQL 查询中指定要在其中创建表的数据库,这在 Hibernate 中似乎缺少 - 因为创建了表,但在某种自动创建的数据库中。 有没有办法将“数据库中的 [...]”附加到 DDL 或某事。类似?

谢谢。

【问题讨论】:

    标签: java hibernate db2 zos


    【解决方案1】:

    我通过扩展 DB2Dialect 找到了一个不错的解决方案:

    public class DB2Dialect extends org.hibernate.dialect.DB2400Dialect {
        public static String db;
    
        @Override
        public String getTableTypeString() {
            return " IN DATABASE " + db;
        }
    }
    

    因为这个函数的注释暗示它被指定给 MySQL 特性,所以我想暂时没问题。

    【讨论】:

    • 这似乎是错误的。我毫不怀疑这可能会奏效,但感觉不是正确的方法。我的意思是,您不应该安装它(表应该已经创建/管理)。假设它“暂时还好”只是意味着它会在你最不期望的时候咬你。您可能想与您的 DBA 交谈 - 其他版本的 DB2 似乎将所有内容推送到会话连接到的数据库的默认“用户”模式中,我很惊讶这里似乎并非如此。
    • @Clockwork-Muse 我同意这不是最好的解决方案,但是在查看了 Hibernate 源代码之后,到目前为止我还没有看到任何其他选择。关于架构:我实际上编写了一个驱动程序,它使用官方驱动程序并填写一些选项,如用户、密码和架构——这使得忘记表空间和这些东西成为可能。对于想要在测试环境中尝试的开发人员来说,这只是一个小项目——当然没有什么重要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-03
    • 2021-06-12
    • 2021-12-02
    • 2018-10-25
    相关资源
    最近更新 更多