JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java Application Framework » Spring  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 JPA連結 兩個以上的資料庫
fjj





發文: 127
積分: 5
於 2008-12-11 17:54 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
各位前輩好 :

Spring + Hibernate JPA 同時連接兩個不同的資料庫,
採取的方法是分別建立兩個不同的 EntityManagerFactory,
然後分別對這些 EntityManagerFactory, 賦予各自的 JpaTransationManager...
Spring appcationContext.xml 設定檔如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
    <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="persistenceXmlLocation" value="classpath:META-INF/persistence.xml" />
        <property name="persistenceUnitName" value="persistenceName" />
        <property name="loadTimeWeaver"> 
            <bean class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver"/> 
        </property>
        <property name="jpaVendorAdapter">
            <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
                <property name="database" value="MYSQL" />
                <property name="showSql" value="false" />
            </bean>
        </property>
    </bean>
    <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager" >
        <property name="entityManagerFactory" ref="entityManagerFactory" />
    </bean>
    <tx:annotation-driven transaction-manager="transactionManager" />
 
    <bean id="emfSS" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="persistenceXmlLocation" value="classpath:META-INF/persistence2.xml" />
        <property name="persistenceUnitName" value="samplestore" />
        <!-- <property name="dataSource" ref="dataSource"/> -->
        <property name="loadTimeWeaver"> 
            <bean class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver"/> 
        </property>
        <property name="jpaVendorAdapter">
            <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
                <property name="database" value="MYSQL" />
                <property name="showSql" value="false" />
            </bean>
        </property>
    </bean>
    <bean id="txManagerSS" class="org.springframework.orm.jpa.JpaTransactionManager" >
        <property name="entityManagerFactory" ref="emfSS" />
    </bean>
    <tx:annotation-driven transaction-manager="txManagerSS" />
 


目前發生了一件很奇怪的事, 我可以利用 em.find(id) 取出資料,
但是 只有寫在appcationContext.xml 設定檔,
比較前面的那個 JpaTransactionManager( 上例的 transactionManager 變數所 handle),
才能夠執行 em.persist(); 或是 em.merge();,
而後面的那個 JpaTransactionManager (上例的 txManagerSS 變數所handle ),
雖然執行後不會出現 Exception, 但是卻好像什麼都沒發生一樣....資料庫也都沒改變....
, 但是 em.find() 卻是可以成功取出資料的!!...

想請問各位前輩, 可能的原因是什麼??
再次感激各位前輩的指導與協助!!....


reply to postreply to post
話題樹型展開
人氣 標題 作者 字數 發文時間
1755 JPA連結 兩個以上的資料庫 fjj 2636 2008-12-11 17:54
» JWorld@TW »  Java Application Framework » Spring

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8