2016-10-26 5 views
0

私はJavaでWebアプリケーションを作成しており、Hibernateを使用してJavaオブジェクトとデータベースをマッピングします。 Hibernateでは、私はC3POプールを使用してデータベースに接続します。今私はいくつかのタスクをスケジュールする必要があります。ここではQuartzを使用します。これで、スケジュールされたタスクがデータベースに保存されます。 C3POの接続プールをQuartzと共有することは可能ですか?したがって、データベース設定は1つの同じファイル内にあり、1つのライブラリのみがデータベース接続を開く責任があります。他のライブラリとHibernate接続を共有する

答えて

2

これは主観的なことですが、接続を共有したい場合はいくつかのオプションがあります。

springを使用している場合は、c3p0接続プールをBeanとして定義し、HibernateセッションファクトリとQuartzスケジューラBeanの両方に注入します。

Springを使用せずに「純粋な」状態を保ちたい場合は、コンテナレベルでJNDIベースのデータソースを定義できます。

両方のアプローチでいくつかのニュアンスがあります。

残念なことに、「携帯」とは何をしようとしているのか、「java」、「quartz-scheduler」、および「c3p0」以外のタグを使用して現在何を使用しているのかは明確ではありません。追加の情報を追加するためのOPに

EDIT

感謝。

この情報に関して、動的Webプロジェクトを使用している場合は、コンテナ固有のデプロイメント記述子をWebContentディレクトリに追加することができます。 Tomcatの

  • 、META-INF/context.xmlに突堤については
  • 、WEB-INF/web.xmlの桟橋-ものと

は、あなたがJNDIデータソースを定義することができます。それを行う方法については、特定のコンテナを参照してください。完了したら、設定したデータソースに対してJNDIリファレンスを使用するようにHibernateとQuartzを設定できます。

+0

私はダイナミックWebプロジェクト(Beansを使用しない)でJava 8、Hibernate with C3pO、Quartzを使用しています。私はSpringのような大きなフレームワークを使用していません... – JimmyD

関連する問題