【发布时间】:2023-03-07 17:05:01
【问题描述】:
我的应用无法自动装配 entityManagerFactory。
我的applicationContext.xml:
<tx:annotation-driven/>
<context:component-scan base-package="top.level.package" />
<bean id="persistenceUnitManager"
class="org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager">
<property name="persistenceXmlLocation">
<value>classpath:jpa-persistence.xml</value>
</property>
</bean>
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitManager" ref="persistenceUnitManager" />
</bean>
<bean id="transactionManager"
class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
我的java类:
@Component
public class Engine {
@Autowired
@Qualifier("entityManagerFactory")
private EntityManagerFactory entityManagerFactory;
......
}
问题:
为什么 entityManagerFactory 为空?
【问题讨论】:
-
如何获得 Engine 实例?
-
可能是因为
@Qualifier("entityManagerFactory")。您尚未在 xml 配置中限定 emf -
@orid 它通过
id属性。 -
你在Engine中添加了@Component并在config中添加了component-scan吗?
-
我通过以下方式获取引擎实例:Engine engine = new Engine();