Je tente de faire abstraction de ce bloc supérieur de code pour ressembler au bloc de code inférieur.Comment créer une fonction personnalisée qui renvoie une méthode de fermeture de critères de graissage
if (params.xId) {
and {
'in'(aggregateClassReference, hierarchy['x'])
eq(aggregateIdReference, params.xId as Long)
}
}
if (params.yId) {
and {
'in'(aggregateReference, hierarchy['y'])
eq(aggregateIdReference, params.yId as Long)
}
}
...
if (params.xId) { belongsToHierarchy('x', params.xId as Long) }
if (params.yId) { belongsToHierarchy('y', params.yId as Long) }
J'utilise les requêtes critères de Gorm, mais je ne veux pas que ces gros morceaux de code. Existe-t-il un moyen de renvoyer une fermeture de ces requêtes de critères dans une fonction personnalisée? Le problème est maintenant droit je mets les morceaux ci-dessous du code dans
def criteria = DetachedCriteria.build(...)
Ensuite je fais un
criteria.list(...)
à exécuter. Ce serait génial de revenir en quelque sorte une fermeture de juste la
and {
'in'{...}
eq {...}
}
dans une fonction personnalisée au sein de la construction, mais je n'ai pas été en mesure de comprendre cela encore. Un peu nouveau pour les grails. Toute idée pour me guider serait très appréciée :)
Peut-être que les requêtes nommées pourrait aider? Avez-vous regardé dans eux? http://docs.grails.org/latest/ref/Domain%20Classes/namedQueries.html –