私の Web アプリケーションは、Tomcat 6.0.18 と Spring 3.0.5、eclipselink 2.0.1 と javax.persistence 2.0.0、SQL Server データベースを使用しています。構成を理解できず、そのような構成での実際の例を見つけることもできませんでした。loadTimeWeaver のプロパティを entityManagerFacotory に追加しようとしましたが、Spring 3 で AutoWired アノテーションが壊れます。以下の applicationContext.xml のように:
<context:load-time-weaver/>
appname-servlet.xml で:
しかし、LoadTimeWeaver を無効にすると、アプリケーションは JPA コードからデータベースを作成できますが、データをデータベースに永続化できませんでした。
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceXmlLocation" value="classpath:persistence.xml" />
<property name="dataSource" ref="dataSource" />
<property name="persistenceUnitName" value="restfulPU" />
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.EclipseLinkJpaVendorAdapter">
<property name="showSql" value="true"/>
<property name="generateDdl" value="true"/>
<property name="databasePlatform" value="org.eclipse.persistence.platform.database.SQLServerPlatform"/>
</bean>
</property>
<property name="jpaDialect">
<bean class="org.springframework.orm.jpa.vendor.EclipseLinkJpaDialect" />
</property>
<property name="jpaPropertyMap">
<props>
<prop key="eclipselink.weaving">false</prop>
</props>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager"/>
Persistence.xml
<persistence-unit name="restfulPU" transaction-type="RESOURCE_LOCAL">
<class>com.generalform.eclipselink.model.Todo</class>
<properties>
<!-- EclipseLink should create the database schema automatically -->
<property name="eclipselink.ddl-generation" value="drop-and-create-tables" />
<property name="eclipselink.ddl-generation.output-mode"
value="database" />
</properties>
Spring 3 と Tomcat への EclipseLink の統合に関するガイドまたはチュートリアルを教えていただければ幸いです。