Search code examples
grailsgrails-orm

Is there a 'not in' equivalent in GORM?


Is this possible to convert in createCriteria()?

SELECT * FROM node WHERE (node.type = 'act' AND nid NOT IN (SELECT nid FROM snbr_act_community)) LIMIT 10

I know there's a 'in' operator and here's what I have so far:

def c = VolunteerOpportunity.createCriteria()
def matchingActs = c.list {
    node {
        eq('type', 'act')
    }
    maxResults(10)
}

Just want to see if this is possible. Otherwise, I guess this is possible in HQL right?


Solution

  • thanks Sammyrulez for the code. got an idea from that. tested it but it didn't work. i fixed it and here's the final working code:

    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)
    }
    

    now i know how to use 'not' operator. thanks a lot!