我有一個現有的客戶端服務器項目,它使用普通JDBC與單個MySQL實例進行通信。現在我想擴展它來支持使用任何JPA實現的多個(分片)MySQL實例,並且支持支持XA事務的JTA實現。如何將JPA和JTA與事務管理器一起使用?
我的問題是我應該如何繼續?經過幾個小時的谷歌搜索,我明白我可能無法使用沒有任何應用服務器容器的JTA實現,這是真的嗎?
爲了我的目的,如果可以使用任何ORM層抽象應用程序邏輯 - JPA實現(如EclipseLink分區或OpenJPA Slice),然後使用事務管理器(如BTM)執行提供的XA事務ACID保證了底層的MySQL實例。
到目前爲止,我嘗試了YouTube上的視頻教程(https://www.youtube.com/watch?v=Vmr6GAlbG10),嘗試使用EclipseLink和單個數據庫實例。現在我打算將它擴展到多個實例,但不知道如何。
任何類型的建議,鏈接和指導將是非常有益的。我對此很陌生,因此如果我誤解了任何內容,請接受任何不便。謝謝。
您能提供一些關於您的建議的更多細節,例如:一個教程或例子? –
我的建議與春季?只需在因特網上搜索「spring jta」,就會發現很多例子。例如,查看[JTA上的Spring文章](http://spring.io/blog/2011/08/15/configuring-spring-and-jta-without-full-java-ee/)。 –
@Geziefer,因爲你已經有了Java EE的經驗:你只需配置事務管理器,並告訴你的EntityManagers他們是JTA(而不是資源本地),並且他們每一個被Spring注入的地方都會自動加入JTA交易。註釋與Java EE中的註釋非常相似,但只有事務傳播的註釋纔不同。(也許你必須使用'@ Transactional'註釋公共方法,與EJB相比,這是默認的) –