Je remarque des vitesses terribles lorsque j'essaie d'utiliser CGLIB avec un filtre de rappel (sur des dizaines de milliers d'objets) mais je ne trouve aucune information sur l'optimisation de CGLIB.Lenteur des performances CGLIB à l'aide des filtres de rappel
Pour une interface de recherche/liste, le système charge plusieurs propriétés à partir d'une requête optimisée et remplit l'arborescence du domaine avec ces propriétés. Pour toutes les autres propriétés, le LazyLoader charge l'objet complet. L'idée est d'avoir les propriétés de base utilisées par la recherche/liste à charger, tout en ne perdant pas les classes du modèle de domaine.
de base Exemple
String name = rst.getString(1);
Enhancer enhancer = new Enchancer();
enhancer.setSuperclass(Type.class);
enhancer.setCallbackFilter(new CallbackFilter(){
public int method(Method method){
if("getName".equals(method.getName()){
return 1;
}
return 0;
}
});
enhancer.setCallbacks(new Callback[]{
new LazyLoader(){...}
new FixedValueImpl(name);
});
return (Type)enhancer.create()