2016-11-15 7 views
3

データベース:ORACLEなぜhibernateは挿入操作と削除操作の間に 'T_'プリフィックスtableNameを生成するのですか?

我々は、明示的にテーブル名を与えている、休止状態のためとHBMファイルにImprovedNamingStrategyを使用しています。

しかし、削除操作と挿入操作では、接頭辞として 'T_'が、一部の表に対して接頭辞として 'HT_'が生成されています。これはSQLGrammarExceptionが得られている

org.hibernate.exception.SQLGrammarException:文

を実行できませんでしたOracleデータベースを使用しながら、これが起こっていることに注意してください、それはHSQLかのPostgresで起こっていません。

答えて

2

一括操作を実行しているようですが、これは一時表です。ここでは、公式のHibernateフォーラムのtopicが、同じ問題を抱えている可能性が最も高いです。そして、ここにはarticleがあり、なぜこのテーブルが必要なのか説明しています。

回避策は、大量の操作を避けるか、Hibernateにこの一時テーブルを作成させることです。

+0

これはOracleでのみ発生しますか? –

+0

@ a3.14_InfinityそれはむしろORM特有のもので、データベース特有のものなので、そうは思わない。この一時表を作成するためにOracleにいくつかの制限があるかもしれませんが、それらはHSQLおよびPDデータベースで作成されていますか? – Stanislav

+0

一時テーブルの作成を避けるにはどうすればいいですか?私たちが設定し回避できるように、フラグや設定はありますか? –

関連する問題