我使用与DAO分开的类来处理访问请求,但我不知道如何实现InstanceRequest方法:
public class Service
{
public static DAO findDAO(Long id);
}
@Service(Service.class)
public interface DAORequestContext extends RequestContext
{
Request<ProxyForDAO> findDAO(Long id);
InstanceRequest<ProxyForDAO, Long> persist();
}
我在public Long persist()
实现中定义DAO
,因为gwt docs say,“在服务器上,实例方法必须实现为实体类型中的非静态方法,”但请求工厂似乎无法找到它:
SEVERE: Could not find any methods named persist in com.activegrade.server.data.Service
Feb 23, 2011 10:03:02 PM com.google.gwt.requestfactory.server.ServiceLayerDecorator die
如何在Service
中实现实例方法?我不知道如何改造InstanceRequest
。我是否需要以某种方式将DAO
类连接到Service
,以便代码生成器知道在Service
中查找大多数方法但跳过DAO
InstanceRequest
来电?
答案 0 :(得分:2)
ASAIK这是不可能的,因为InstanceRequest
方法绑定到@Service
注释中指定的类。使用Request
方法,可以使用定位器为一个服务类提供多个数据类的方法。但是根据我对请求工厂的理解,使用InstanceRequest
方法是不可能的。另请参阅此项目,该项目使用定位器,并在一个位置使用方法:http://code.google.com/p/listwidget/
编辑:我在更新/评论后重写了答案。