使用DataNucleus JPAReplicationManager时出现ClassCastException

时间:2015-01-23 12:30:15

标签: java hibernate jpa datanucleus

我正在尝试测试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)

1 个答案:

答案 0 :(得分:1)

所以你使用DataNucleus复制工具,但尝试使用Hibernate EntityManagerFactory。由于DataNucleus复制需要DataNucleus特定,因此两个EMF应来自DataNucleus

相关问题