2013-04-29 163 views
0

最近,我開始學習Spring JPA,並對在xml配置中設置Spring JPA感到困惑。Spring JPA + Hibernate XML配置

我搜索了春季文檔網站,並沒有太多我可以從那裏得到。我搜索了一些例子來設置Spring JPA,但是這些示例並沒有給出關於Bean和其中使用的屬性的任何詳細解釋。

它們也使用不同的方法,如在一個示例中,它使用org.apache.commons.dbcp.BasicDataSource,第二個使用org.springframework.jdbc.datasource.DriverManagerDataSource。 在一個例子中,它定義了jpaVendorAdapter屬性,但另一個沒有定義它。

我只知道一個知道使用Hibernate作爲提供程序的XML中設置Spring JPA配置的最佳方法。

請幫助我們,謝謝!

+0

你檢查這個例子,它說明你需要的一切。 https://github.com/SpringSource/spring-data-jpa-examples – Jaiwo99 2013-04-29 09:30:47

回答

0

請查看下

<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> 

配置這種配置是定義上的嵌入式數據庫的數據源,你可以改變它是你喜歡則定義JPA的DAO使用的entityManagerFactory作爲

任何數據庫
protected EntityManager entityManager; 

public EntityManager getEntityManager() { 
    return entityManager; 
} 
@PersistenceContext 
public void setEntityManager(EntityManager entityManager) { 
    this.entityManager = entityManager; 
} 

檢查link

對我來說我目前使用彈簧數據JpaRepository代替肌酐的NG DAO從無到有,

,如果你想添加的事務使用:

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager" 
    p:entityManagerFactory-ref="entityManagerFactory" /> 
<tx:annotation-driven /> 

那麼你可以使用@Transaction

還要檢查這個channel