我想了解将Gilead与GXT和hibernate集成的最佳方法。本文http://code.google.com/webtoolkit/articles/using_gwt_with_hibernate.html描述了Gilead与GWT的用法。
大多数GXT组件使用继承BaseModelData的自定义类绑定,这是否意味着我们需要将持久化的bean(LightEntity bean)转换为在绑定到GXT组件之前扩展BaseModelData的自定义类。我的理解是否正确?如果是,通过这样做我有什么好处,我需要再次使用推土机/手动码转换?
gilead网站上的例子可悲,任何人都可以提供一个链接,其中存在使用GXT与Gilead和hibernate的完整示例吗?
由于
答案 0 :(得分:1)
您不需要让DAO实现BaseModelData。
您需要做的是为您在GWT客户端软件包中创建接口的每个DAO类。您必须扩展BeanModelMarker并使用@BEAN注释。这告诉EXT GWT您的DAO可以用作BeanModel
package org.gwtapp.client.model;
import com.extjs.gxt.ui.client.data.BeanModelMarker;
import com.extjs.gxt.ui.client.data.BeanModelMarker.BEAN;
@BEAN(org.vnsny.domain.MyClass.class)
public interface MyClassBeanModel extends BeanModelMarker {
}
然后当你需要从你的类创建BeanModel时,你使用BeanModelFactory
BeanModel model = BeanModelLookup.get().getFactory(
MyClass.class).createModel(myClassObj);
答案 1 :(得分:1)
此外,当您使用数据组件并检索类型为具有子类实例的超类的集合时,您需要将此设置添加到bean读取器
reader.setFactoryForEachBean(true);
如果没有为每个bean设置工厂,读者将尝试将所有对象强制转换为集合的第一个实例的类
例: 超级=动物 SubClasses = Dog,Cat
在远程方法中,返回Animal:List列表,并为每个类创建bean模型接口。