DataSource.getInheritsFrom()因ClassCastException而失败

时间:2011-11-02 11:05:29

标签: java gwt smartgwt

在SmartGwtEE项目中,我有.ds.xml文件中描述的DataSources层次结构,以下是其中一些:

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>

问题:当我尝试在代码

中获取父数据源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

我将不胜感激任何帮助。

1 个答案:

答案 0 :(得分:0)

这样你就不会再得到例外:

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

但是,我不确定这对你的目的是否“好”。如果这对您不利,请尝试创建一个Javascript对象并为其分配前面提到的值。我希望这会有所帮助。