我一直在尝试设置一个服务器,它将公开一些公共Web服务。当我尝试@Autowire对象并设置与MySQL数据库的连接时,我确实遇到了很多问题。当我修复一个错误时,会显示10个新错误,但看起来这个EntityManager和EntityManagerFactory问题是主要错误。
我曾尝试在cloudfoundry服务器和本地jetty服务器上部署。在我当地的码头服务器上,我收到了这个错误:
当我的xml文件(pom.xml,servlet-context.xml和persistence.xml)看起来像这样:
我的User对象实现可以在上面链接的java错误下面看到。 (在帖子中无法使用2个以上的链接)
错误一般是关于无法自动装载字段,但正如我所理解的那样,这是因为实体管理员的问题。我对吗? 我可能怀疑pom.xml文件中存在一些版本问题。
非常感谢任何帮助,现在已经过去很多天没有任何改进!
乔恩
答案 0 :(得分:0)
看起来实体管理器配置不正确。这段代码对我有用:
<bean class="org.springframework.orm.jpa.JpaTransactionManager" id="transactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
<!-- replace this with your data source -->
<jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jdbc/project" />
<bean
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
id="entityManagerFactory">
<property name="persistenceUnitName" value="persistenceUnit" />
<property name="dataSource" ref="dataSource" />
<!-- this is important if you want to
connect JPA and JdbcTemplate transaction control -->
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="showSql" value="false" />
</bean>
</property>
</bean>
<!-- jdbc templates that are equal for all databases -- may not needed by you -->
<bean class="org.springframework.jdbc.core.JdbcTemplate" id="jdbcTemplate">
<constructor-arg ref="dataSource" />
</bean>
<bean class="org.springframework.jdbc.core.simple.SimpleJdbcTemplate" id="simpleJdbcTemplate">
<constructor-arg ref="dataSource" />
</bean>
然后你可以使用(如果你使用Spring Autowireing)
@PersistenceContext
private EntityManager entityManager;