DataSource.getInheritsFrom()失败,并抛出ClassCastException

问题描述:

在SmartGwtEE项目中,我有.ds.xml文件描述的数据源的层次,这里是其中的一些:DataSource.getInheritsFrom()失败,并抛出ClassCastException

BaseElement_DS.ds.xml

<DataSource ID="BaseElement_DS" serverConstructor="com.isomorphic.jpa.JPADataSource" 
    beanClassName="lnudb.server.model.BaseElement"> 
    <fields> 
     <field name="id" type="sequence" hidden="true" primaryKey="true" /> 
     <field name="name" type="text" title="Name" required="true" /> 
     <field name="dsId" type="text" title="Datasource" hidden="true"/> 
    </fields> 
</DataSource> 

Human_DS.ds.xml

<DataSource ID="Human_DS" serverConstructor="com.isomorphic.jpa.JPADataSource" 
    beanClassName="org.zasadnyy.lnudb.server.model.Human" inheritsFrom="BaseElement_DS" 
    useParentFieldOrder="true"> 
    <fields> 
     <field name="surname" type="text" /> 
     <field name="birthday" type="date" title="Birthday" required="false" /> 
    </fields> 
</DataSource> 

PROBL EM:当我试图让父数据源ID代码

String parentDsId = DataSource.get("Human_DS").getInheritsFrom(); 

ClassCastExeption从getInheritsFrom内提出()方法:

java.lang.ClassCastException: com.google.gwt.core.client.JavaScriptObject$ cannot be cast to java.lang.String 

我会感谢任何帮助。

这样你就不会得到异常不再:

String parentDsId = DataSource.get("Human_DS").getInheritsFrom() + ""; 

但是,我不知道这是否是你的目的“OK”。如果这对你不合适,尝试创建一个Javascript对象并将前面提到的值赋予它。我希望这有帮助。

+0

感谢您的快速回答,但这并没有帮助,这种解决方案可以在JavaScript中帮助,但不能在Java中帮助。 – zasadnyy