Grails访问关系表

时间:2015-05-01 11:08:15

标签: grails many-to-many gorm

我的应用中有一对多关系,如下所示:class

App {
    String type
    String name

    static hasMany = [users: User]
}

class User {
    String email
    String regid

    static belongsTo = App
    static hasMany = [apps:App]

}

现在,我希望通过拥有其ID来访问应用的所有用户。我更喜欢使用纯SQL,因为它的工作方式更快,我的数据库将有〜百万条记录。所以我需要一种方法来访问应用程序ID的所有用户(给定应用程序数组)。

我正在尝试的是做这样的事情:

def result = sql.eachRow('SELECT App_Users from App where id in(?)' [id:params.app_checkbox])

但是由于列App_users不可用,这会引发异常。

我试图这样做4-5个小时并且记住我不是网络开发者,它已经让我发疯了,所以你们可以给我建议,如何访问多对多的成员与sql的关系?

1 个答案:

答案 0 :(得分:1)

最后我设法用简单的标准来实现它:

 def results = App.createCriteria().list() {
                createAlias('users', 'user')
                'in'("id", goodIds)
                projections {
                    count('users')
                }
            }