2009-04-12 8 views
2

JPA/Hibernate設定で2つの永続ユニットを設定しました。これで、それぞれの永続性単位に対して異なるimport.sqlを実行する必要があります。永続ユニットごとにどのimport.sqlを実行するかを指定するにはどうすればよいですか?ドキュメントへのHibernateによると、私はクラスパスにimport.sqlを置くべきです。これを行うと、各永続ユニットでimport.sqlが実行されます。どうやら各永続ユニットに異なるimport.sqlを指定する必要があります。永続ユニットごとにHibernate/JPAでdiffernet import.sqlを実行するにはどうすればよいですか?

答えて

5

アプリケーションの起動時にorg.hibernate.tool.hbm2ddl.SchemaExportクラスを使用して何らかのマニュアルを作成できます。だから、

hibernate.hbm2ddl.import_files /mydbload.sql,/mydbload2.sql 

あなたはできます

SchemaExport schemaExport1 = new SchemaExport(cfg1); // there are various c-tors available 
schemaExport1.setInputFile("/import-1.sql"); 
schemaExport1.create(false, true); 

SchemaExport schemaExport2 = new SchemaExport(cfg2); 
schemaExport2.setInputFile("/import-2.sql"); 
schemaExport2.create(false, true); 
+0

このメソッドの名前はSchemaExport.setImportFile(String)です。 – xmedeko

7

FWIW、これは休止状態3.6.0.Beta1で可能である(HHH-5337を参照してください)、あなたは今hibernate.hbm2ddl.import_filesプロパティを使用してインポートするためにどのようなファイル(複数可)を宣言することができます各永続ユニットに異なる値を使用します。

0

私のプロジェクトでは、import.sqlを1つしか使用せず、その隣に別の* .sql(例:H2_import.sql、sqlServer_import.sql)を作成し、パーシスタンスユニットを使用してコンテンツをコピーします* .sqlとそれ以前のものをimport.sql

関連する問題