在我的 GWT 2.4.0 应用程序中,我使用 RequestFactory 和 Hibernate/JPA。我有一个实体,它通过关系Agent
有很多。此关联已加载。因此,当调用查找服务时,不会加载代理的管理员,这在大多数情况下是所需的行为。Administrators
@OneToMany
LAZY
但是,我希望能够在使用 with 方法在客户端代码上触发 requestFactory 请求时表明我希望代理的管理员回来。所以我的客户端代码看起来像:
RequestContext.findAgent(agentId).with("administrstors").fire()
我的服务器端服务看起来像这样:
public Agent findAgent(Long id) {
return getEntityManager().createQuery("SELECT a" +
" FROM Agent" +
" WHERE a.id=:id", Agent.class)
.setParameter("id", id)
.getSingleResult();
}
我希望能够弄清楚是否使用 with 方法发送请求。我需要自定义 JPA 查询以加载代理的管理员,以防客户端使用。有没有办法访问通过服务器端的 RequestFactory 发出的请求的详细信息?
如果我知道客户端代码需要代理管理员,我的 JPA 查询将如下所示:
public Agent findAgent(Long id) {
return getEntityManager().createQuery("SELECT a" +
" FROM Agent a LEFT JOIN a.administrators admin" +
" WHERE a.id=:id", Agent.class)
.setParameter("id", id)
.getSingleResult();
}
任何见解将不胜感激。提前致谢。