2011-06-30 9 views
2

プログラムでを作成し、さまざまなプロパティを正しく設定するとします。 SessionFactoryの作成に関連するすべてのメソッドが保護されているので、Hibernate SessionFactoryをどのように抽出できますか? afterPropertiesSet()を呼び出した後SpringでSessionFactoryをプログラムで作成する

AnnotationSessionFactoryBean sessionFactoryBean = new AnnotationSessionFactoryBean(); 
SessionFactory sessionFactory = sessionFactoryBean.newSessionFactory(); // Protected!! 

答えて

9

使用getObject()、:

sessionFactoryBean.afterPropertiesSet(); 
SessionFactory sessionFactory = sessionFactoryBean.getObject(); 

AnnotationSessionFactoryBeanFactoryBean<SessionFactory>を実装)

しかし、注意してください:これを行うことで、それは確かにSessionFactoryがクローズされていることを確認するためにあなたの責任となりあなたがそれで終わったら。

+0

私はそれを考えましたが、試してみましたが、nullを返します。 sessionFactoryBeanがまだSessionFactoryを「作成」しておらず、getObject()を呼び出す前にこの作成プロセスを完了する必要があることは明らかです。私は、SessionFactoryを初期化している間に発生すると予想されるコンソール出力がないことに気付きます。 – chris

+0

@ user791160:ああ、良い点... 'afterPropertiesSet'に関して編集を参照してください – skaffman

+1

それはそれをしました - ありがとう – chris

関連する問題