- PR -

Hibernateで実際のテーブル定義とXMLの定義ファイルが異なる場合

1
投稿者投稿内容
cooldrive
会議室デビュー日: 2005/09/22
投稿数: 1
投稿日時: 2005-09-22 21:11
Hibernateで開発しておりますが、以下のような場合、どうなるかご存知の方いらっしゃいましたら教えてください。

テーブルA
フィールド1 PK
フィールド2
フィールド3

上記に基づいてXMLの定義ファイルを書いています。

そこで、テーブル定義を以下のように変更します。

テーブルA
フィールド1 PK
フィールド2 複合ユニーク制約
フィールド3 複合ユニーク制約

XMLの定義ファイルを変更しないままですと、やはりアプリケーションに多大なリスクが発生するのでしょうか?
実際のテーブル定義とXMLの定義ファイルが不一致の場合に関する記事などがありましたら、ぜひ教えてください。
あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2005-09-23 01:42
一意制約の場合はあまり影響ないと思いますよ。

Hibernate側で何かするわけではなく、スキーマ生成時に制約を
張るためだけにあると思っています(正確なとこは自信ないですが)。

一意制約に違反する場合は、save()やflush()などの呼び出しで
エンティティが書き込まれるタイミングで例外が発生します。

ただし、主キーと違って多くのgenerator(sequence等)ではsave()の
呼び出しが成功した後で、flushされた時に例外が飛ぶような動きに
なったはずなので注意した方がいいかもしれません。
1

スキルアップ/キャリアアップ(JOB@IT)