DataSource.getInheritsFrom() не работает с ClassCastException

В проекте SmartGwtEE у меня есть иерархия источников данных, описанная в файлах .ds.xml, вот некоторые из них:

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>

Проблема: когда я пытаюсь получить идентификатор родительского источника данных в коде

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

Буду благодарен за любую помощь.


person zasadnyy    schedule 02.11.2011    source источник


Ответы (1)


Таким образом, вы больше не получите исключение:

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

Однако я не уверен, подходит ли это для ваших целей. Если это вам не подходит, попробуйте создать объект Javascript и присвоить ему ранее упомянутое значение. Надеюсь, это поможет.

person Lajos Arpad    schedule 02.11.2011
comment
Спасибо за быстрый ответ, но это не помогло, такое решение может помочь в JavaScript, но не в Java. - person zasadnyy; 02.11.2011