【发布时间】:2015-01-23 12:30:15
【问题描述】:
我正在尝试测试 DataNucleus JPAReplicationManager,但目前还没有工作。
在我的类路径中,我有:
antlr-2.7.7.jar
datanucleus-api-jpa-4.1.0-m1.jar
datanucleus-core-4.1.0-m1.jar
dom4j-1.6.1.jar
hibernate-commons-annotations-4.0.5.Final.jar
hibernate-core-4.3.8.Final.jar
hibernate-entitymanager-4.3.8.Final.jar
hibernate-jpa-2.1-api-1.0.0.Final.jar
jandex-1.1.0.Final.jar
javassist-3.18.1-GA.jar
jboss-logging-3.1.3.GA.jar
jboss-logging-annotations-1.2.0.Beta1.jar
jboss-transaction-api_1.2_spec-1.0.0.Final.jar
mysql-connector-java-5.1.32-bin.jar
这是我的代码:
EntityManagerFactory emf1 = master.getDbFactory();
EntityManagerFactory emf2 = slave.getDbFactory();
JPAReplicationManager replicator = new JPAReplicationManager(emf1, emf2);
replicator.replicate(new Class[]{Terminal.class});
错误:
Exception in thread "main" java.lang.ClassCastException: org.hibernate.internal.SessionImpl cannot be cast to org.datanucleus.ExecutionContext
at org.datanucleus.api.jpa.JPAReplicationManager.replicate(JPAReplicationManager.java:133)
【问题讨论】:
-
那么显然一个持久化单元由 Hibernate 管理,而另一个持久化单元由 datanucleus 管理?异常似乎想告诉你,这不受支持,很可能两个持久性单元都需要由 datanucleus 管理。
标签: java hibernate jpa datanucleus