2017-10-12 10 views

答えて

1

はい、@Startupは@Statelessでは動作しないため、通常はスタートアップシングルトンBeanを使用して初期化を行うのが正しい方法です。

データベースにデータを挿入したい場合は、別のオプションは、persistence.xmlのでSQLスクリプトを実行するために、次のようになります。

<property name="javax.persistence.sql-load-script-source" 
     value="META-INF/sql/data.sql" /> 

これは明らかに、データベースを管理することができないという欠点を持っていますJavaコードを挿入します。詳細についてはこちらをご覧ください:http://docs.oracle.com/javaee/7/tutorial/persistence-intro005.htm

を使用すると、EJBの(とシングルトン)についての詳細を読みたい場合は、こちらをご覧ください:http://download.oracle.com/otn-pub/jcp/ejb-3.1-fr-eval-oth-JSpec/ejb-3_1-fr-spec.pdf

+0

私はこの方法でそれをやりました。私はsqlファイルと他のスクリプト、jsonまたはプロパティファイルをmeta-infに持っていますが、persistence.xmlは別のアーカイブにあります。私は標準的な永続ユニット名を持っているので、エンティティマネージャを挿入して行ごとにファイルを読み込むネイティブクエリを実行することができます:このようにSQLクエリはモジュールとともに移動され、jdbc接続に制約はありません。パーシスタンスユニット名 –

関連する問題