Est-ce que cela est possible de convertir en Createciteria ()?
def c = VolunteerOpportunity.createCriteria() def matchingActs = c.list { node { eq('type', 'act') } maxResults(10) }
5 Réponses :
pas essayé moi-même, mais en regardant les API de GRAILS DOC et Hibernate Vous créez des nœuds sur cette carte de constructeur avec les méthodes statiques trouvées dans la classe de restrictions de l'API de critère Hibernate 1 . Alors quelque chose comme puisque vous enchaînez la méthode dans (qui renvoie un critère) avec la méthode non (qui prend un critère comme argument et renvoie une version annulée) P> P> P >
merci pour le code d'échantillon. Vous avez une idée sur la manière d'utiliser l'opérateur «non».
Merci Sammyrulez pour le code. eu une idée de ça. Testé cela mais ça n'a pas fonctionné. Je l'ai réparé et voici le code de travail final:
def ids = [14400 as long, 14401 as long] def c = VolunteerOpportunity.createCriteria() def matchingActs = c.list { node { eq('type', 'act') not { 'in'(ids) } } maxResults(10) }
Ceci est la solution:
def resultat=EnteteImputationBudgetaire.createCriteria().get{ between("dateDebutPeriode", dateDebut, dateFin) and{ eq 'natureImputationBudgetaire','FONCTIONNEMENT' } maxResults(1) } def resultat2=ParametragePlanBudgetaire.createCriteria().list() { like('composantBudgetaire','6%') if(resultat?.details) { not { 'in'('composantBudgetaire',resultat?.details?.imputationBudgetaire) } } }
Selon la documentation de Grails sur la création de critères ici , vous pouvez utiliser quelque chose comme ceci: Dans cet exemple, vous avez une propriété nommée "Âge" code> et vous voulez obtenir des lignes qui ne sont pas comprises entre 18 et 65. Bien sûr, la partie
[18..65] code> peut être substituée à n'importe quelle liste de valeurs ou de portée dont vous avez besoin. P> p>
Se souvenir juste: Dans ce cas, vous n'avez pas à utiliser des parenthèses et vous pouvez utiliser dans la liste code>, par exemple: