【问题标题】:JBoss EAP 6.3 CMT Multiple persistence unitsJBoss EAP 6.3 CMT 多个持久性单元
【发布时间】:2015-11-21 15:51:49
【问题描述】:

这本质上是How to locate the source of JBAS011470 error in JBoss?的副本

但本质上,只要我添加第二个持久性单元,它就会给我这个错误。这太荒谬了。我不会像某些人建议的那样禁用 JPA 子系统——这听起来不对。

我的persistence.xml设置如下,其中java:/NAME在standalone.xml中设置为数据源:

<?xml version="1.0"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation=
         "http://java.sun.com/xml/ns/persistence 
         http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
         version="2.0">


<persistence-unit name="name" transaction-type="JTA">

    <jta-data-source>java:/NAME</jta-data-source>

    <class>za.co.classes.A</class>
    <class>za.co.classes.B</class>
    <class>za.co.classes.C</class>


    <properties>

        <property name="hibernate.transaction.jta.platform"
              value="org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform"/>
        <property name="hibernate.transaction.manager_lookup_class"
              value="org.hibernate.transaction.JBossTransactionManagerLookup"/>
        <property name="jboss.entity.manager.factory.jndi.name"
            value="java:jboss/persistence/NAME" />
        <property name="jboss.entity.manager.jndi.name"
            value="java:jboss/persistence/em/NAME" />
        <property name="hibernate.dialect" value="za.co.equrahealth.dao.SQLServerDialect" />
    </properties>

</persistence-unit>

我添加第二个持久性单元后,错误就开始了。所以春天的背景是无​​关紧要的。

【问题讨论】:

    标签: java spring hibernate jpa jboss


    【解决方案1】:

    好吧,幸运的是,我在同一个架构中有多个数据库,所以我想出了一个解决方法。但是当有多个模式时,显然不能解决问题。我认为这个问题的原因实际上可能是 JBoss 中的一个错误。

    @PersistenceContext
    private EntityManager entityManager;
    
    private EntityManager getEntityManager(String source)
    {
    
        if ("a".equalsIgnoreCase(source))
        {
            entityManager.createNativeQuery("USE A_DB;").executeUpdate();
        }
        else 
        {
            entityManager.createNativeQuery("USE B_DB").executeUpdate();
        }
    
        return entityManager;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-10
      • 2015-02-19
      • 1970-01-01
      相关资源
      最近更新 更多