我有一个现有的客户端服务器项目,它使用普通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相比,这是默认的) –