2016-04-04 8 views
0

IBM BluemixのdashDBデータベースサービスを使用してクラウドアプリケーションを作成しています。さて、私のアプリケーションを実行すると、hibernate hbm2ddl.autoプロパティが更新するように設定されているので、dashDBベースが更新されます。DashDB - Hibernateで外部キーを生成する際の問題

ただし、次のエラーがコンソールに表示されます。

[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用に作成されたテーブルは、カラムのみで編成されている、ということを知っている参照制約がサポートされている非施行。だから、どのように私は休止状態で強制されていない外部キーを生成するのですか?休止状態で行ごとに整理されたテーブルを生成する方法はありますか?

答えて

0

Hibernateが 'organize_by_row'句を使ってcreate table DDLを生成するメカニズムには気づいていません。おそらくSQLDBサービスを使用したいと思うでしょう。この前の記事を参照してください。https://developer.ibm.com/answers/questions/21252/how-to-use-ruby-on-rails-with-analytics-warehouse-service-blu-acceleration-on-bluemix.html

+0

確かに、hbm2ddlにはこのような柔軟性がありません。しかし、Hibernateには、開発者が独自のDLLジェネレータをビルドできるようにする別のツールがあることがわかりました。このトピックは非常にテーマで啓発されています:http://stackoverflow.com/questions/438146/hibernate-hbm2ddl-auto-possible-values-and-what-they-do – Islon

+0

あなたはいくつかのフープを通過する場合は、あなたはHibernateにファイル内のDDLを書き出させるためのコードを書くことができます(http://jandrewthompson.blogspot.in/2009/10/how-to-generate-ddl-scripts-from.html)。次に、ファイルを手作業で編集し、create table DDLに 'organize_by_row'句を追加します。このファイルをdashDBインスタンスで実行します。 –