目前我正在玩 Spring 设置。我的目标是使用 JPA 访问使用其 JNDI 名称的 Websphere 数据源。我正在使用 Spring Data JPA 让我的生活更轻松,并通过一些教程来了解基本概念。
坏事:这些都不是在谈论我的 JPA 场景的 Spring 配置 + 我以前从未使用过 JPA / JDBC。所以我希望你能在这里帮助我。我有2个配置文件:
应用程序上下文.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 注释,所以我正在为 txManager 使用注释驱动的标签。我只是不确定我应该为 txManager 配置什么以及 sessionFactory 标签在做什么。是否有所有支持的 XML 标签的文档?我是否错过了我的场景的重要标签?
eManager 也一样——不确定这是否正确。
持久性.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>
同样的事情:真的不知道我在做什么。我知道我需要一个持久性单元/提供者。我知道很多人为此使用休眠,但如果可能的话,我想保持原生并使用纯 JavaEE / Spring。我只是不确定如何配置它。目前我的项目正在崩溃,告诉我:“JPA PersistenceProvider 返回 null”