Snite
Snite

Reputation: 169

Grails many to many relationship error

I get a problem due to my poor knowledge on GORM and modeling domain object in Grails.

Here is my issue :

| Error Error loading plugin manager: 
No owner defined between domain classes [class com.myproject.model.Project] and 
[class com.crowdfun.Sector] in a many-to-many relationship. 
Example: static belongsTo = com.myproject.model.Sector 
(Use --stacktrace to see the full trace)

I can't say what is wrong, because I follow the tutorial of official grails documentations : http://grails.org/doc/latest/guide/GORM.html#manyToMany

My classes :

Project.groovy :

class Project {

    String name
    Integer nbInvestors
    Region region
    Integer nbDays
    Boolean success
    String equity
    String currency
    Double target
    Double raisedAmount
    String url
    Double valuation

    boolean extended = false

    static belongsTo = [
        site: Site,
        sector: Sector
    ]

    static hasMany = [
        sectors: Sector
    ]

    static hasOne = [
        valuationRange: ValuationRange,
        targetRange: TargetRange
    ]

    static constraints = {
        name nullable: true
        nbInvestors nullable: true
        region nullable: true
        nbDays nullable: true
        success nullable: true
        equity nullable: true
        currency nullable: true
        target nullable: true
        raisedAmount nullable: true
        url nullable: true, unique: true
        valuation nullable: true
    }
}

Sector.groovy :

class Sector {

    String name

    static hasMany = [
        projects: Project
    ]

    static constraints = {
        name unique: true
    }

    @Override
    public String toString() {
        return name
    }

    def getNbProjects() {
        projects.size()
    }
}

Site.groovy

class Site {

    String name

    static hasMany = [
        projects: Project
    ]

    static constraints = {
        name unique: true
    }

    @Override
    public String toString() {
        return name
    }
}

Upvotes: 0

Views: 1569

Answers (1)

James Kleeh
James Kleeh

Reputation: 12228

Change the class like so:

class Project {

    ...
    Site site
    Sector sector

    static belongsTo = [Site, Sector]
}

Upvotes: 1

Related Questions