这基本上是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>
添加第二个持久性单元后,错误就会开始。所以春天的背景是无关紧要的。
答案 0 :(得分:0)
好吧,我幸运地在同一个架构中有多个数据库,所以我想出了一个解决方法。但是当有多个模式时,它显然不会解决问题。我认为这个问题的原因可能实际上是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;
}