0

您好,我正在尝试将 Hibernate 3.6.3 应用程序迁移到 Hibernate 4,但出现以下错误:

 Invalid property 'dataSource' of bean class 
 [org.springframework.orm.jpa.LocalEntityManagerFactoryBean]: 
 Bean property 'dataSource' is not writable or has an invalid 
 setter method. Does the parameter type of the setter match the 
 return type of the getter?

我看过这篇文章: integration JPA and SpringIOc

当我使用 LocalEntityManagerFactoryBean 时,我得到了上面提到的错误,但是当我使用 LocalContainerEntityManagerFactoryBean 时,我在创建我的 DAO bean 时得到了一个错误。

我认为这是 spring.orm 依赖配置的问题,但我不确定,因为我所做的所有依赖更改都不起作用。

我在哪里可以找到 Hibernate 4 迁移指南以适应我的 JPA、Hibernate 3.6.3 和 Spring 应用程序?

4

1 回答 1

2

根据文档

此 EntityManagerFactory 引导程序适用于仅使用 JPA 进行数据访问的独立应用程序。如果要为外部数据源和/或跨多个资源的全局事务设置持久性提供程序,则需要将其部署到完整的 Java EE 5 应用程序服务器中并通过 JNDI 访问已部署的 EntityManagerFactory,或使用 Spring 的LocalContainerEntityManagerFactoryBean,根据 JPA 的容器合同为本地设置进行适当的配置。

这意味着您可能必须使用LocalContainerEntityManagerFactoryBean而不是LocalEntityManagerFactoryBean

<bean id="entityManager" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="dataSource" ref="myDataSource" />
    ....
    ....
</bean>

前任:

于 2013-03-25T12:33:06.570 回答