【问题标题】:DashDB - Problems to generate foreign key with HibernateDashDB - 使用 Hibernate 生成外键的问题
【发布时间】:2016-04-04 12:52:19
【问题描述】:

我正在使用 IBM Bluemix 的 dashDB 数据库服务来创建一个云应用程序。好吧,当我运行我的应用程序时,由于 hibernate hbm2ddl.auto 属性设置为更新,它将更新我的 dashDB 库。

但是,控制台上出现以下错误:

[ERROR ] HHH000388: Unsuccessful: alter table DASH104411.table1 add constraint 
FK_m1vvn3lavq1rjt9oghf0m3x5t foreign key (id_table2) references DASH104411.table2
[ERROR ] DB2 SQL Error: SQLCODE=-1667, SQLSTATE=42858, SQLERRMC=DASH104411.TABLE2;
ORGANIZE BY COLUMN;ENFORCED, DRIVER=4.19.49

我知道,默认情况下,为 dashDB 创建的表是按列组织的,并且只支持非强制引用约束。那么如何生成不被hibernate强制执行的外键呢?有没有办法通过休眠生成按行组织的表?

【问题讨论】:

    标签: hibernate foreign-keys ibm-cloud dashdb


    【解决方案1】:

    不知道 Hibernate 使用“organize_by_row”子句生成创建表 DDL 的机制。您可能想要使用 SQLDB 服务。请参阅此较早的帖子 - https://developer.ibm.com/answers/questions/21252/how-to-use-ruby-on-rails-with-analytics-warehouse-service-blu-acceleration-on-bluemix.html

    【讨论】:

    • 确实,hbm2ddl 没有这种灵活性。但是我看到 Hibernate 有另一个工具可以让开发人员构建自己的 DLL 生成器。这个题目对题目很有启发:stackoverflow.com/questions/438146/…
    • 如果你愿意经历一些麻烦,你可以编写一些代码让 Hibernate 在文件中写出 DDL (jandrewthompson.blogspot.in/2009/10/…)。然后手动编辑该文件并将“organize_by_row”子句添加到创建表 DDL。现在在您的 dashDB 实例上运行此文件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-21
    • 2016-08-14
    • 2011-12-05
    • 1970-01-01
    • 1970-01-01
    • 2021-10-20
    相关资源
    最近更新 更多