は、私は、ファイルに次のBean定義はbeans.xmlの呼ばれています:なぜLocalContainerEntityManagerFactoryBean Bean定義からEntityManagerFactoryオブジェクトを取得できますか?
<bean id="entityManager"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan" value="mypackagename" />
<property name="persistenceProviderClass"
value="org.hibernate.jpa.HibernatePersistenceProvider" />
<property name="jpaPropertyMap">
<map>
<entry key="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
<entry key="hibernate.hbm2ddl.auto" value="update" />
</map>
</property>
</bean>
を、私は次のコードでEntityManagerFactory
オブジェクトとして、このBeanを取得できます。これはどのように
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
EntityManagerFactory emf = context.getBean(EntityManagerFactory.class);
可能?
LocalContainerEntityManagerFactoryBean
はEntityManagerFactory
を実装していません。
これはどのように正確に機能しますか?
'LocalContainerEntityManagerFactoryBean'は、「Springアプリケーションコンテキスト内でローカルJPAの' EntityManagerFactory'インスタンスを作成する抽象FactoryBean」を意味する「AbstractEntityManagerFactoryBean」を拡張しています。* – user2004685