Java 整合JPA和SpringIOc
嗨,我写了一个小应用程序,正在尝试连接jpa。 在我的spring配置文件中,我写了以下内容:Java 整合JPA和SpringIOc,java,spring,jpa-2.0,Java,Spring,Jpa 2.0,嗨,我写了一个小应用程序,正在尝试连接jpa。 在我的spring配置文件中,我写了以下内容: <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="${jdbc.driver.manager}" /> <property name="url"
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driver.manager}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.login}" />
<property name="password" value="${jdbc.password}" />
</bean>
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="packagesToScan">
<list>
<value>com.epam.newsmanagement.entity</value>
</list>
</property>
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="database" value="ORACLE" />
</bean>
</property>
</bean>
<bean id="jpaDao" class="com.epam.newsmanagement.dao.JPANewsDao" />
请帮助)org.springframework.orm.jpa.LocalEntityManagerFactoryBean未定义dataSource/getDataSource()字段/方法。这就是为什么你会得到这个例外 改用LocalContainerEntityManagerFactoryBean
如果您在
LocalContainerEntityManagerFactoryBean
中配置PersistenceUnit
,可能有助于集成JPA
和Spring
。确保在persistence.xml
和springbean.xml
中使用相同名称的PersistenceUnit
。如果是这样,DataSource
本地EntityManagerFactoryBean的配置可能是可选的。您可能需要配置JpaTransactionManager
(假设:jpa configuration.xml
可能是Springbean配置。)
可选:org.springframework.orm.jpa.vendor.hibernatejpailect
或com.company.util.hibernateextendedjpailect
用于jpailect
示例:spring-bean.xml
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driver.manager}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.login}" />
<property name="password" value="${jdbc.password}" />
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<!--<property name="dataSource" ref="dataSource"/>-->
<property name="persistenceUnitName" value="your_persistence_unit_name"/>
<property name="jpaVendorAdapter" ref="jpaVendorAdapter"/>
<property name="jpaDialect">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaDialect"/>
</property>
<!--<property name="jpaPropertyMap"></property>-->
<property name="loadTimeWeaver">
<bean class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver">
</bean>
</property>
</bean>
<bean id="jpaVendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<!-- For MySQL-->
<property name="databasePlatform" value="org.hibernate.dialect.MySQL5Dialect"/>
<property name="generateDdl" value="false"/>
<property name="showSql" value="true"/>
</bean>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driver.manager}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.login}" />
<property name="password" value="${jdbc.password}" />
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<!--<property name="dataSource" ref="dataSource"/>-->
<property name="persistenceUnitName" value="your_persistence_unit_name"/>
<property name="jpaVendorAdapter" ref="jpaVendorAdapter"/>
<property name="jpaDialect">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaDialect"/>
</property>
<!--<property name="jpaPropertyMap"></property>-->
<property name="loadTimeWeaver">
<bean class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver">
</bean>
</property>
</bean>
<bean id="jpaVendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<!-- For MySQL-->
<property name="databasePlatform" value="org.hibernate.dialect.MySQL5Dialect"/>
<property name="generateDdl" value="false"/>
<property name="showSql" value="true"/>
</bean>