gwt リクエスト ファクトリからコレクションを取得するたびに、そのコレクション内のすべてのエンティティに対して "findEntity()" メソッドが呼び出されるという問題がありました。そして、この「findEntity()」メソッドは SQL データベースを呼び出します。
これは、リクエスト ファクトリが「ServiceLayerDecorator.isLive()」メソッドのすべてのエンティティの「活性」をチェックするために発生することがわかりました (ここでも説明されています: GWT の requestfactory および findEntity メソッド) 。
だから私は自分のRequestFactoryServletを提供しました:
public class MyCustomRequestFactoryServlet extends RequestFactoryServlet {
public MyCustomRequestFactoryServlet() {
super(new DefaultExceptionHandler(), new MyCustomServiceLayerDecorator());
}
}
そして私自身の ServiceLayerDecorator:
public class MyCustomServiceLayerDecorator extends ServiceLayerDecorator {
/**
* This check does normally a lookup against the db for every element in a collection
* -> Therefore overridden
*/
@Override
public boolean isLive(Object domainObject) {
return true;
}
}
これはこれまでのところ機能しており、データベースに対してこの大量のクエリを取得することはありません。
今、私はそれで他の問題が発生するかどうか疑問に思っていますか? または、これを解決するためのより良い方法はありますか?