2013-09-24 70 views
1

我在orientdb一个新手,我想节省一些实体在数据库中,但我一直有这样的例外:ClassCastException异常使用OrientDb

GRAVE: Error on creating object of class SessionStats 
    java.lang.ClassCastException: com.heavenize.embedder.statsengine.model.SessionStats_$$_javassist_0 cannot be cast to javassist.util.proxy.Proxy 
     at com.orientechnologies.orient.object.enhancement.OObjectEntityEnhancer.getProxiedInstance(OObjectEntityEnhancer.java:155) 
     at com.orientechnologies.orient.object.db.OObjectDatabaseTx.newInstance(OObjectDatabaseTx.java:132) 
     at com.orientechnologies.orient.object.db.OObjectDatabaseTx.newInstance(OObjectDatabaseTx.java:92) 
.... 

我一直在使用对象数据库坚持一些对象和我创建一个类包装OObjectDatabaseTx类。

当我尝试创建新实例时发生异常。

public class DbOrientService 
{ 

    public <T> T newIntance(Class<T> instance) 
    { 
    OObjectDatabaseTx currentDbInstance = getCurrentDbInstance(); 
    T newInstance = currentDbInstance.newInstance(instance); //Happens in this line 
    return newInstance; 
    } 

    public OObjectDatabaseTx getCurrentDbInstance() 
    { 
    this.db = new OObjectDatabaseTx(url); 
    if (!this.db.exist()) 
    {   
     this.db = db.create(); 
    } 
    else 
    { 
     this.db = OObjectDatabasePool.global().acquire(url, "admin", "admin"); 
    } 
    return db; 
    } 

我还注册了存储实体的包。 我该如何解决这个问题?

回答

3
java.lang.ClassCastException: 
com.heavenize.embedder.statsengine.model.SessionStats_$$_javassist_0 
cannot be cast to javassist.util.proxy.Proxy 

由于对象显然一个Javassist是代理,并且不能被强制转换为Javassist进行代理,我会假设你有两个不同的版本了Javassist的类路径上的

+0

好,为感谢您的帮帮我。 Eclipse和Maven之间的类路径混淆。 – Dimitri