【问题标题】:Spring JPA + Hibernate XML ConfigurationSpring JPA + Hibernate XML 配置
【发布时间】:2013-04-22 20:31:05
【问题描述】:
最近,我开始学习 Spring JPA,但对在 xml 配置中设置 Spring JPA 感到困惑。
我用谷歌搜索了 spring 文档站点,但我从那里得到的信息不多。我用谷歌搜索了一些设置 Spring JPA 的示例,但这些示例没有详细说明其中使用的 bean 和属性。
他们还使用不同的方法,例如在一个示例中,它使用 org.apache.commons.dbcp.BasicDataSource,而第二个示例使用 org.springframework.jdbc.datasource.DriverManagerDataSource。
在一个例子中,它定义了 jpaVendorAdapter 属性,但另一个没有定义它。
我只是知道使用 Hibernate 作为其提供者在 XML 中设置 Spring JPA 配置的最佳方法。
请帮帮我,谢谢!
【问题讨论】:
标签:
xml
spring
hibernate
jpa
configuration
【解决方案1】:
请在下面找到配置
<jdbc:embedded-database type="H2" id="dataSource">
</jdbc:embedded-database>
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
p:dataSource-ref="dataSource" p:packagesToScan="org.spring.web.example.domain">
<property name="jpaVendorAdapter">
<bean id="jpaAdapter"
class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"
p:generateDdl="true" p:showSql="true" p:databasePlatform="org.hibernate.dialect.MySQLDialect" />
</property>
</bean>
此配置是在嵌入式数据库上定义数据源,您可以将其更改为您喜欢的任何数据库,然后将 entityManagerFactory 定义为在 jpa DAO 中使用
protected EntityManager entityManager;
public EntityManager getEntityManager() {
return entityManager;
}
@PersistenceContext
public void setEntityManager(EntityManager entityManager) {
this.entityManager = entityManager;
}
查看link
对我来说,目前我正在使用 spring-Data JpaRepository 而不是从头开始创建 DAO,
如果你想添加交易使用:
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"
p:entityManagerFactory-ref="entityManagerFactory" />
<tx:annotation-driven />
那么你可以使用@Transaction
也可以查看channel