EntityManager在我的dao类中始终为null。 我的Spring配置文件如下所示:
<bean id="entityManagerFactoryBean" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan" value="com.myproject.pmi.model" />
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
</property>
<property name="jpaProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
</props>
</property>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassname" value="drivername" />
<property name="url" value="url" />
<property name="username" value="abc" />
<property name="password" value="xyz" />
<!-- This transaction manager is appropriate for applications that use a single JPA EntityManagerFactory for transactional data access.
JTA (usually through JtaTransactionmanager) is necessary for accessing multiple transactional resources within the same transaction. -->
<bean id="transactionmanager" class="org.springframework.orm.jpa.JpaTransactionmanager">
<property name="entityManagerFactory" ref="entityManagerFactoryBean" />
我的dao如下所示,其中我在注入带有@PersistenceContext批注的EntityManager。
@Repository
@Transactional
public class UserDaoImpl implements UserDao {
@PersistenceContext
private EntityManager manager;
@Override
public void addUser(User user) {
manager.persist(user);
}
}
我的pom.xml如下所示:
<dependencies>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.3.8.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.1-api</artifactId>
<version>1.0.2.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.3.8.Final</version>
</dependency>
<dependency>
<groupId>org.jboss</groupId>
<artifactId>jandex</artifactId>
<version>2.0.0.Final</version>
</dependency>
EntityManager为空。而且控制台中没有错误。