我正在攻读Spring Core认证,我对如何在Spring中使用 JPA 2 抱有以下疑问。
阅读文档,我发现存在3种设置 EntityManagerFactory 的方法,它为我提供了一个 EntityManager ,用作OO模型与数据库关系模型之间的桥梁
这三种方式是:
LocalEntityManagerFactoryBean负责
LocalContainerEntityManagerFactoryBean
使用JNDI查找
所以现在我对第一个( LocalEntityManagerFactoryBean )有些怀疑。阅读文档,我发现这种方法对于独立应用程序,集成测试(究竟是什么意味着独立应用程序?)以及它无法指定数据源,特别是关于这最后的陈述:
仅通过JPA进行数据访问时非常有用
使用标准JPA服务位置(SPI)机制 /META-INF/services/javax.persistence.spi.PersistenceProvider
这究竟意味着什么呢?我知道JPA 2用于将类映射到数据库表并轻松执行数据库上的交互。这种设置 EntityManagerFactory 的方式不能指定数据源吗?我想如果我使用JPA 2,我正在使用数据库,所以我需要一个数据源。
我错过了什么?
然后我还将以下与 EntityManagerFactory 配置相关的代码片段示例添加到Spring配置类中:
@Bean
public LocalEntityManagerFactoryBean entityManagerFactory() {
LocalEntityManagerFactoryBean em =
new LocalEntityManagerFactoryBean();
em.setPersistenceUnitName(“rewardNetwork”);
return em;
}
那么这个bean配置到底是什么?它是如何工作的?
TNX