0

我正在尝试为一些基本的 Google App Engine 服务编写 Spring 配置。特别是对于 EntityManagerFactory 和 Entity Manager。

从 Java 代码创建 EntityManagerFactory:

EntityManagerFactory emfInstance = javax.persistence.Persistence
    .createEntityManagerFactory("transactions-optional");

我将其翻译为:

<bean id="entityManagerFactory" class="javax.persistence.Persistence" 
    factory-method="createEntityManagerFactory" scope="singleton">
    <constructor-arg value="transactions-optional"/> 
</bean>

每次我需要一个 EntityManager

EntityManager em = emfInstance.get().createEntityManager(); 

但我不知道如何将工厂方法应用于先前创建的工厂。

<bean id="entityManagerProto" 
    factory-method="createEntityManager" scope="prototype"/>

有谁知道?谢谢。

4

1 回答 1

2

您可以将现有 bean 用作工厂,如下所示:

<bean id="entityManagerProto"
    factory-bean = "entityManagerFactory"
    factory-method="createEntityManager" scope="prototype"/> 

另外,我不确定它是否适用于 GAE,但也许使用它会更好LocalEntityManagerFactoryBean,并EntityManager注入@PersistenceContext.

于 2011-11-30T19:29:26.123 回答