Java 在Spring中LocalEntityManagerFactoryBean配置是如何工作的?

Java 在Spring中LocalEntityManagerFactoryBean配置是如何工作的?,java,spring,jpa,jpa-2.0,spring-data-jpa,Java,Spring,Jpa,Jpa 2.0,Spring Data Jpa,我正在学习Spring核心认证,我对如何在Spring中使用JPA 2有以下疑问 阅读文档后,我发现有3种方法可以设置EntityManager工厂,它为我提供了一个EntityManager,用作OO模型与DB关系模型之间的桥梁 这三种方式是: LocalEntityManagerFactoryBean LocalContainerEntityManagerFactoryBean 使用JNDI查找 所以现在我对第一个(LocalEntityManagerFactoryBean)有些怀疑。阅读文

我正在学习Spring核心认证,我对如何在Spring中使用JPA 2有以下疑问

阅读文档后,我发现有3种方法可以设置EntityManager工厂,它为我提供了一个EntityManager,用作OO模型与DB关系模型之间的桥梁

这三种方式是:

  • LocalEntityManagerFactoryBean

  • LocalContainerEntityManagerFactoryBean

  • 使用JNDI查找

  • 所以现在我对第一个(LocalEntityManagerFactoryBean)有些怀疑。阅读文档后,我发现此方法对于独立应用程序、集成测试非常有用(独立应用程序的确切含义是什么?),并且无法指定数据源,特别是关于最后一个陈述:

    • 只有通过JPA进行数据访问时才有用

    • 使用标准JPA服务定位(SPI)机制 /META-INF/services/javax.persistence.spi.PersistenceProvider

    这到底是什么意思?我知道JPA2用于将一个类映射到DB表,并轻松地在DB上执行交互。以这种方式设置EntityManagerFactory无法指定数据源的菜单是什么?我认为,如果我使用JPA2,我正在处理一个DB,所以我需要一个数据源

    我错过了什么

    然后,我还将以下与EntityManagerFactory配置相关的代码片段示例放入Spring配置类中:

    @Bean
    public LocalEntityManagerFactoryBean entityManagerFactory() {
        LocalEntityManagerFactoryBean em =
        new LocalEntityManagerFactoryBean();
        em.setPersistenceUnitName(“rewardNetwork”);
        return em;
    }
    
    那么这个bean配置到底是什么呢?它是如何工作的

    Tnx