hbm2ddl.auto
をupdate
に設定して、奇妙な休止状態に遭遇しています。hbm2ddl.auto = updateは、別のDBユーザーに敬意を表しませんか?
私たちのテスト環境では、2つのデータベースユーザーがあります.1つはベータアプリケーションのテーブルを含み、もう1つは主に開発に使用されます。私。異なるユーザーと同じテーブル名。 新しいテーブルを作成するときは、hbm2ddl.auto=update
を使用してテーブルを作成します。
突然、奇妙なことに、更新プロセスは間違ったユーザーで既存のテーブルを探し、適切なユーザーで見つからないテーブルを作成します。
など。以下の表は
USER_A.TABLE_1
USER_B.TABLE_2
を存在し、私たちが構成された3つのテーブルを更新する場合:TABLE_1, TABLE_2, TABLE_3
User_Bへを使用して、我々はUSER_B
のために作成されていない
USER_A.TABLE_1
USER_B.TABLE_2
USER_B.TABLE_3
TABLE_1
で終わります。
USER_A.TABLE_0
USER_B.TABLE_1
USER_B.TABLE_2
USER_B.TABLE_3
これは誰にどんな意味を成しています:USER_A.TABLE_0
にUSER_A.TABLE_1
の名前を変更して再度更新したら、私たちは期待される結果に終わりますか? 「このサーバーでこのテーブルを既に作成しています(ユーザーは気にしません)」のような内部の休止状態のキャッシュのようなものがありますか?
これは構成上の問題ではないことを確認するためにかなりの時間を費やしていますが、これを別のマシン、異なる構成、またはIDEから再現して、USER_Aのパスワードがビルドディレクトリなどのどこにもないことを確認してください。私たちは100%確信しています、行動は記述されているとおりです - しかし、私たちはアイデアから完全に外れています。
これについては、この問題がしばらく残っているので、私はあなたの考えを聞いてとてもうれしいです。
どうもありがとう、 ピーター
あなたは正しいです:USER_BはUSER_Aにいくらかの特権を持ち、そのテーブルを見ることができました。これは奇妙な動作を引き起こしました。ユーザーの個人情報を修正することでこの問題が解決されました。ありがとう、partenon - あなたの答えは本当に多くの助けてくれました:) BTWと完全性のために:設定hibernate.default_schemaは実際には何の効果もありませんでした。再度、感謝します! – PeterP