私のGWT2.4.0アプリケーションでは、RequestFactoryとHibernate/JPAを使用しています。私には関係を通してAgent
多くを持っている実体があります。この関連付けが読み込まれます。したがって、findサービスが呼び出されると、エージェントの管理者はロードされません。これは、ほとんどの場合、望ましい動作です。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();
}
任意の洞察をいただければ幸いです。前もって感謝します。