2011-01-12 5 views
13

Hibernateでは、クラスパスのルートにimport.sqlファイルを追加する可能性があり、Hibernateセッションの作成時にこのファイルのSQL式がデータベース上で実行されます。Hibernateのimport.sqlで式をより多くの行に分割する方法は?

ただし、式が2行以上に分割されている場合、Hibernateは例外をスローします。 SQL式をより多くの行に分割するにはどうすればよいですか?

答えて

32

使用しないでください。

あなたがHibernate4を使用している場合は、次のプロパティ

<property name="hibernate.hbm2ddl.import_files_sql_extractor" value="org.hibernate.tool.hbm2ddl.MultipleLinesSqlCommandExtractor" /> 
を追加することができます

あなたの休止状態の設定(私はJPAのpersistence.xmlです)。 user manualとこのJIRA issueと比較してください。 Hibernateのhibernate.cfg.xmlので、仕様がvalue属性を認識しないと、あなたがテキストの内容としてそれを提供しなければならないことを

<property name="hibernate.hbm2ddl.import_files_sql_extractor">org.hibernate.tool.hbm2ddl.MultipleLinesSqlCommandExtractor</property> 

(おかげでダニエル・ガーバーこれを指しているためアウト)

+0

ありがとう、マビ。これは受け入れられた答えでなければなりません。 –

+0

非常に良い、魅力のように動作します! – acdcjunior

+0

これは受け入れられる回答である必要があります。 – realcnbs

-2

セミコロンを使用してください。改行すると、検索を介してこれを見つける私のような誰かのために入力するか、\ nは

+1

セミコロン? SQLのセミコロンは式の終わりですね。私は何か違うものを求めています。 – amorfis

+1

複数の行に1つの式を入力したい場合は、 "enter"を使用して式をセミコロンで終了することができます。 Hibernateのimport.sqlはそれを理解します。出会ったときだけ式終了を考えます。 –

+4

私の経験では、hibernateのimport.sqlはそれを理解していないことを示しています。行の終わりを式の終わりとして扱います。 – amorfis

関連する問題