如何在域类之间创建多个一对多关系

时间:2017-09-21 11:18:10

标签: grails mapping gorm grails-domain-class

我有一个帐户类,有很多管理员(用户类)& reps(用户类)。

$("#suggest").autocomplete({
    delay: 100,
    source: function (request, response) {

        // Suggest URL
        var suggestURL = "http://suggestqueries.google.com/complete/search?client=chrome&q=%QUERY";
        suggestURL = suggestURL.replace('%QUERY', request.term);
   $('.tags_id').text("");
        // JSONP Request
        $.ajax({
            method: 'GET',
            dataType: 'jsonp',
            jsonpCallback: 'jsonCallback',
            url: suggestURL
        })
        .success(function(data){

            response(data[1]);
        });
    },
   select: function( event, ui ){

   $('.tags_id').text(ui.item.value);},

});

然后,我有一个属于一个帐户的User类。用户在User类中使用Role Enum区分为manager或rep。

{{1}}

问题是,当我创建任何类型的用户并保存它时,Grails最终将该用户添加到帐户对象中的经理和代表集。

我意识到我需要在这里使用mapped_by,但是我不明白应该如何使用它。管理员和代表由用户类内的角色枚举区分。

我已经查看了几个stackoverflow问题#1#2但是大多数情况下,问题会通过其他关系得到解决。

我特别想在帐户和用户类之间使用2个一对多关系。

编辑:初始化代表的代码:

{{1}}

1 个答案:

答案 0 :(得分:0)

您需要指定要使用的关联:

def addRep(manager) {
    User rep = new User(role: Role.REP)
    manager.account.addToReps(rep) // This will do the bi-association
    rep.save(flush: true, failOnError: true)
}