要求项目连接本地mysql中的两个数据库a1,a2,增删改都要同时操作,同时成功或同时失败,这个项目整体使用EJB框架,glassfish v2.0服务器,JPA做数据的持久化,persistence.xml中配置了两个不同的<persistence-unit>,使用了两个数据源,请问如何配置才能使这个项目同时连接mysql中的两个数据库,并实现增删改同时操作呢?

解决方案 »

  1.   

    你不是已经在 persistence.xml中配置了两个<persistence-unit>吗? 两个<persistence-unit>中分别配置两个数据库的连接 。 然后你在程序中 。注入就行了 。
    // test1 为第一个persistence-unit 的name属性
     @PersistenceContext(unitName ="test1")      private EntityManagerem1 ; 
       // test2 为第二 个persistence-unit 的name属性
        @PersistenceContext(unitName ="test2")    private EntityManagerem2 ;
      

  2.   

    意思就是说在程序中用两个EntityManager分别对两个数据库进行操作了?
      

  3.   


    对的 。如果要对两个数据库实现事务操作 。你就再注入一个 UserTransaction 就可以了 。    @Resource    private UserTransaction  transaction ;transaction 用法与JDBC的Transaction一样 。也是 begin   commit  rollbak
      

  4.   

    出现这个异常是什么情况?RAR5027:资源缓冲时发生异常
    java.lang.IllegalStateException: 本地事务已经有 1 项非 XA 资源: 无法添加更多资源。两个数据源有冲突?