2012-03-16 14 views
1

私はパラメータとしてDataSourceを提供する必要があるAPIを扱わなければなりません。問題は、EntityManagerまたはPersistentContextを提供するコンテキストからアクセスして、そのメソッドを通じてDataSourceを公開していないように見えることです。 基本的なDataSourceをEntityManagerからプログラムで取得するにはどうすればよいですか?javax.persistence.EntityManagerからjavax.sql.DataSourceを取得

@Resource(name = "jdbc/...") 
private DataSource dataSource; 

、その後、APIの引数としてデータソースを提供する:

+0

どのjpa実装を使用しましたか?どのようにEMを取得しましたか?例えば。 Springのようなフレームワークを介して? – Kent

+0

私はJPA実装としてHibernateを使用します。私はSpringを使用していないので、@EntityManagerでプロパティに注釈を付けることでEMを取得します。私の場合、Spring IOCの使用は選択肢ではありません。 – 1tox

+1

@ResourceアノテーションでDataSourceを挿入しようとすることも、JNDIルックアップで取得することもできます。 –

答えて

2

ソリューションは、データソースをこのように注入されます。

+0

しかし、コンテナの内部。 CLIアプリケーションでそれを取り出す方法は? (はい、あなたはCLIアプリケーションの内部にあることができます) –

関連する問題