Сбой DataSource.getInheritsFrom () с ClassCastException - PullRequest
1 голос
/ 02 ноября 2011

В проекте 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

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

1 Ответ

0 голосов
/ 02 ноября 2011

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

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

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

...