在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
我将不胜感激任何帮助。
答案 0 :(得分:0)
这样你就不会再得到例外:
String parentDsId = DataSource.get("Human_DS").getInheritsFrom() + "";
但是,我不确定这对你的目的是否“好”。如果这对您不利,请尝试创建一个Javascript对象并为其分配前面提到的值。我希望这会有所帮助。