目前我正在研究一个Spring设置。我的目标是使用JPA来访问Websphere数据源,使用它的JNDI名称。我正在使用Spring Data JPA来使我的生活更容易,并通过一些教程来了解基本思想。
不好的事情是:没有一个教程谈论我的JPA场景的Spring配置+我以前从未使用过JPA / JDBC。所以我希望你能在这里帮助我。我有两个配置文件:
applicationContext.xml
<bean id="txManager"
class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<tx:annotation-driven transaction-manager="txManager" />
<bean id="eManager" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean"></bean>
由于我在代码中使用了@Transactual注释,因此我正在使用annotation-driven标记来处理txManager。但我不是很确定还需要为txManager配置什么以及sessionFactory标记的作用。是否有所有支持的XML标签的文档?我是否漏掉了我的场景中重要的标记?
eManager也是一样-不确定任何方面是否正确。
persistence.xml
<persistence version="1.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="spring-jpa">
<jta-data-source>jdbc/myJNDI</jta-data-source>
</persistence-unit>
</persistence>
同样的问题:我不知道自己在做什么。我知道我需要一个持久化单元/提供者。我知道很多人使用hibernate,但如果可能的话,我想保持原生的JavaEE / Spring。只是不确定如何配置。 目前我的项目崩溃了,告诉我:“JPA PersistenceProvider返回null”