将Gilead与GXT和hibernate一起使用的最佳方法是什么?

时间:2010-07-08 11:37:03

标签: java gwt gxt

我想了解将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的完整示例吗?

由于

2 个答案:

答案 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模型接口。